Money转string

左右都是string

//服务站地址

vehicleDetail["yt_servicestation_address"]=serviceStationCollEntity.Contains("yt_street")? serviceStationCollEntity["yt_street"] : null;

右侧Money 左侧string,需要转换成string

//工时单价

vehicleDetail["yt_workinghours"]=serviceStationCollEntity.Contains("yt_unit_price")? serviceStationCollEntity.GetAttributeValue<Money>("yt_unit_price").Value.ToString() : null;

 namespace Net.CRM.Entity

{

    using System;

    using Microsoft.Xrm.Sdk;

    /// <summary>

    /// 基本模式---Entity

    /// </summary>

    public class EntityDemo

    {

        public void Run(Entity entity)

        {

            if (IsNotNull(entity,"new_int"))

            {

                //获取int类型的字段的值

                int new_int = entity.GetAttributeValue<int>("new_int");

            }

            if (IsNotNull(entity, "new_string"))

            {

                //获取string类型的字段的值

                string new_string = entity.GetAttributeValue<string>("new_string");

            }

            if (IsNotNull(entity, "new_float"))

            {

                //获取float类型的字段的值

                float new_float = entity.GetAttributeValue<float>("new_float");

            }

            if (IsNotNull(entity, "new_money"))

            {

                //获取Money(货币)类型的字段的值

                decimal new_money = entity.GetAttributeValue<Money>("new_money").Value;

            }

            if (IsNotNull(entity, "new_picklist"))

            {

                //获取OptionSetValue(下拉框)类型的字段的值

                int new_picklist = entity.GetAttributeValue<OptionSetValue>("new_picklist").Value;

            }

            if (IsNotNull(entity, "new_lookup"))

            {

                //获取EntityReference(引用字段)类型的字段的值

                EntityReference new_lookup = entity.GetAttributeValue<EntityReference>("new_lookup");

            }

        }

        /// <summary>

        /// 判断实体的某个字段是否为空

        /// </summary>

        /// <param name="entity">实体</param>

        /// <param name="name">字段名称</param>

        public bool IsNotNull(Entity entity,string name)

        {

            return entity.Contains(name) && entity.Attributes[name] != null;

        }

    }

}

这样写,是正确的,但是,很繁琐,下面是快速的写法:

namespace Net.CRM.Entity

{

    using System;

    using Microsoft.Xrm.Sdk;

    /// <summary>

    /// 快速开发---Entity

    /// </summary>

    public class EntityQuickDemo

    {

        public void Run(Entity entity)

        {

            if (entity.IsNotNull("new_int"))

            {

                //获取int类型的字段的值

                int new_int = entity.ToInt("new_int");

            }

            if (entity.IsNotNull("new_string"))

            {

                //获取string类型的字段的值

                string new_string = entity.ToString("new_string");

            }

            if (entity.IsNotNull("new_float"))

            {

                //获取float类型的字段的值

                float new_float = entity.ToFloat("new_float");

            }

            if (entity.IsNotNull("new_money"))

            {

                //获取Money(货币)类型的字段的值

                decimal new_money = entity.ToMoney("new_money");

            }

            if (entity.IsNotNull("new_picklist"))

            {

                //获取OptionSetValue(下拉框)类型的字段的值

                int new_picklist = entity.ToOpInt("new_picklist");

            }

            if (entity.IsNotNull("new_lookup"))

            {

                //获取EntityReference(引用字段)类型的字段的值

                EntityReference new_lookup = entity.ToEr("new_lookup");

            }

        }

    }

    /// <summary>

    /// 扩展方法

    /// </summary>

    public static class EntityFunction

    {

        /// <summary>

        /// Int

        /// </summary>

        public static int ToInt(this Entity entity, string name)

        {

           return entity.GetAttributeValue<int>(name);

        }

        /// <summary>

        /// string

        /// </summary>

        public static string ToString(this Entity entity, string name)

        {

            return entity.GetAttributeValue<string>(name);

        }

        /// <summary>

        /// float

        /// </summary>

        public static float ToFloat(this Entity entity, string name)

        {

            return entity.GetAttributeValue<float>(name);

        }

        /// <summary>

        /// Money

        /// </summary>

        public static decimal ToMoney(this Entity entity, string name)

        {

            return entity.GetAttributeValue<Money>(name).Value;

        }

        /// <summary>

        /// OptionSetValue

        /// </summary>

        public static int ToOpInt(this Entity entity, string name)

        {

            return entity.GetAttributeValue<OptionSetValue>(name).Value;

        }

        /// <summary>

        /// EntityReference

        /// </summary>

        public static EntityReference ToEr(this Entity entity, string name)

        {

            return entity.GetAttributeValue<EntityReference>(name);

        }

        public static T GetAttributeValue<T>(this Entity entity, string name)

        {

            if (entity.IsNotNull(name))

            {

                return entity.GetAttributeValue<T>(name);

            }

            return default(T);

        }

        /// <summary>

        /// 判断实体的某个字段是否为空

        /// </summary>

        /// <param name="entity">实体</param>

        /// <param name="name">字段名称</param>

        public static bool IsNotNull(this Entity entity, string name)

        {

            return entity.Contains(name) && entity.Attributes[name] != null;

        }

    }

}

最新文章

  1. HTML5视频播放
  2. lucence.net+盘古分词
  3. mongodb C# 驱动查询
  4. Windows Phone 8.0 Updates 2 and 3模拟器更新
  5. 阅读廖雪峰老师git教程笔记
  6. GIT 如何删除某个本地的提交
  7. 加密方式&amp;数字签名
  8. A C[HDU1570]
  9. ligerui+json_001_实现表格(grid)的后台数据显示、分页
  10. Form_Form树形结构HTree的开发(案例)
  11. ajax readyState的五种状态详解
  12. AVQueuePlayer,备用
  13. 80端口的烦恼:[3]清除NT Kernel占用80端口
  14. 蛙人(ple)
  15. PHPexcel数据导出
  16. 一次webapck4 配置文件无效的解决历程
  17. ThinkingInJava 学习 之 0000005 访问权限控制
  18. WebSocket 教程
  19. 由testcase数据之分析
  20. OpenGL ES 3.0之Fragment buffer objects(FBO)详解(二)

热门文章

  1. lamp apache配置虚拟主机
  2. C++中基类的析构函数为什么要用virtual虚析构函数
  3. OAuth2.0 错误码
  4. 安装Linux系统到u盘
  5. ARM64调试环境
  6. Sublime 学习记录(五) Sublime 其他插件(个人喜好)
  7. Revisit-after元标签是什么,SEO的作用是什么
  8. jQuery的主要用法
  9. 缓存 Array.length 是老生常谈的小优化
  10. sql从某不连续的数字中将其分段并找出缺失的数字并分段