crm快速开发之Entity
来源:互联网 发布:打电话自动录音软件 编辑:程序博客网 时间:2024/05/17 03:00
我们在后台代码里面操作Entity的时候,基本上是这样写的:
/* 创建者:菜刀居士的博客
* 创建日期:2014年07月5号
*/
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;
}
}
}
这样写,是正确的,但是,很繁琐,下面是快速的写法:
/* 创建者:菜刀居士的博客
* 创建日期:2014年07月5号
*/
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
- crm快速开发之OrganizationService
- crm快速开发之QueryExpression
- crm快速开发之EntityCollection
- 如何快速的进行CRM 模板开发
- 快速开发平台与移动CRM
- .net快速开发平台、快速开发平台,帮你快速开发OA、CRM、ERP等系统
- CRM-Solution系统之单据开发感想
- 快速复制CRM系统
- 五指CRM快速部署
- Entity Framework快速入门
- Winform开发框架之客户关系管理系统(CRM)
- 转:CRM UI开发之组件视图复用
- CRM开发框架分析
- CRM系统开发经验谈
- Sage CRM SDK 开发
- CRM WEB page 开发
- ssh开发CRM
- java中对象的复制与相等判断
- [转载]树的先序遍历,中序遍历,后序遍历的非递归写法
- ACdream群赛15 I 字典树
- 4.0版本之后创建SessionFactory 方法有所改变
- Web开发人员需知的Web缓存知识
- crm快速开发之Entity
- C++事件和互斥使用的小心得
- hdu 1010 非递归实现
- The number of steps - UPC 2225 dp
- python发送、解析邮件
- 一款功能强大齐全的PDF转换软件
- cell和lable自适应高度
- 20140705
- poj 1284——Primitive Roots