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;
}
}
}
CRM Entity 之Money转string int类型等的更多相关文章
- char,String,int类型互转
1.ascci码对应转换 字符,对应的ascii(其实是UTF-16)码: char c='a'; int k=(int) c; 结果k=97 数字,对应的字符: int k=9 ...
- golang 中string和int类型相互转换
总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: int, err := strconv.Atoi(string)string转成int64: int64, e ...
- java中将string类型转int类型或者将string类型转long类型方法
将字串 String 转换成整数 int 两种方法: 1).int i = Integer.parseInt("111"); 或 i = Integer.parseInt([Str ...
- Java int类型与String类型互转
String类型转换为int类型 参考:https://blog.csdn.net/qq_35995940/article/details/78433404?locationNum=5&fps ...
- Java不同类型字符转换String/int/Float/////
1.int & String int i=5678;String s=""; int->String: s=i+"";或 s=String.val ...
- 如何将int整型转换成String字符串类型
自动类型转换适用于兼容类型之间从小范围到大范围数据的转换. nt转换成String int i = 10; int b=1: System.out.pritnln(a + b); 里面靠近字符串,所以 ...
- java将int类型的变量转化成String类型的
第一种方法:String的valueOf方法,int i=5;String s=String.valueOf(i);第二种方法,直接在int后面加一个空的字符串,因为在java里面,默认任务int类型 ...
- Item 30 用enum代替int常量类型枚举,string常量类型枚举
1.用枚举类型替代int枚举类型和string枚举类型 public class Show { // Int枚举类型 // public static final int APPLE_FUJI ...
- linq中将int类型转换为string类型,toString()报错
今天同事在调试程序的时候,报了一个不寻常的错误, “LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式 ...
随机推荐
- 全国计算机等级考试二级教程-C语言程序设计_第5章_循环结构
for循环结构的嵌套 外层循环每循环一次,内层循环会完整循环一次. 外层循环是竖. 内层循环是横. for, do...while, while的选择: 如果有固定次数,如阶乘! ,判断素数,用 fo ...
- cf #214div2
Dima and Guards Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u S ...
- 小米手机与魅族的PK战结果 说明了什么
我国电子商务面临的问题,淘宝退出百度无疑是一个遗憾.当在网上购物时.用户面临的一个非常大的问题就是怎样在众多的站点找到自己想要的物品,并以最低的价格买到.自从淘宝退出百度.建立自己的搜索引擎后,广大消 ...
- IIS ,未能加载文件或程序集“System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
1.解决办法:安装MSChart.exe程序 图表控件,下载附件,以管理员身份运行安装.
- C#.net 摄像头驱动程序,用avicap32.dll
装了摄像头后一般会有 avicap32.dll文件,没有一样可以用这些代码. 不需要在解决方案里面引用这个.dll文件. 下面有二种写法的例子: 例一: using System;using Syst ...
- POJ 3279(Fliptile)题解
以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑 ...
- BZOJ 1564: [NOI2009]二叉查找树( dp )
树的中序遍历是唯一的. 按照数据值处理出中序遍历后, dp(l, r, v)表示[l, r]组成的树, 树的所有节点的权值≥v的最小代价(离散化权值). 枚举m为根(p表示访问频率): 修改m的权值 ...
- nginx 学习笔记【持续更新...】
1.如果在安装过程中出现以下错误 需要安装pcre库 解决方案:yum install pcre 2.如果nginx启动提示端口被占用,则停止该端口的服务再启动nginx,一般为httpd服务 解决方 ...
- Python 自带IDLE中调试程序
在vs2013下调试过Python,今天试了下使用自带IDLE调试,相比而言后者效果不好. 记录一下 http://q.cnblogs.com/q/35869/ 在“Python Shell”窗口中单 ...
- Node.js包管理器:
Node.js包管理器: 当我们要把某个包作为工程运行的一部分时,通过本地模式获取,如果要在命令行下使用,则使用全局模式安装 使用全局模式安装的包并不能直接在JavaScript文件中用require ...