zoukankan      html  css  js  c++  java
  • CRM Entity 之Money转string int类型等

     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;
    
            }
    
        }
    
    }
  • 相关阅读:
    djongo 前端页面展示自定义api返回的列表数据,并拼接到table上
    ou are trying to add a non-nullable field 'address' to person without a default; we can't do that (the database needs something to populate existing rows).
    python string 类型的公钥转换类型并解密
    Django 禁止访问403,CSRF验证失败,相应中断
    springboot async
    此博客可能不再更新,往后博文将发布在 GitHub 中
    css 中 transition 需要注意的问题
    学习笔记(九)
    微信小程序 drawImage 问题
    学习笔记(八)
  • 原文地址:https://www.cnblogs.com/zhaojingwei/p/4923509.html
Copyright © 2011-2022 走看看