Dynamics CRM 365 - 零基础入门学习后端插件语法总结(样例使用方法)

Dynamics CRM 365 - 零基础入门学习后端插件语法总结(样例使用方法)

整理下平时CRM开发中用到的一些基本的插件语法,或许对初学Dynamics的新手有所帮助

  1. 插件必写文
public IPluginExecutionContext context = null;//上下文
public IOrganizationServiceFactory serviceFactory = null;//组织服务工厂对象
public IOrganizationService service = null;//Org服务对象
 //创建执行上下文
context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
//创建组织服务工厂对象
serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
//Org服务对象
service = serviceFactory.CreateOrganizationService(context.UserId);
//触发当前插件的那条记录
Entity entity= service.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true));
  1. 获取当前实体对应的查找类型id与实体
//获取当前实体的查找类型字段的id
Guid guid = ((EntityReference)entity["查找字段名称"]).Id;
//方法二
Guid guid = entity.GetAttributeValue<EntityReference>("查找字段名称").Id;
//根据当前id去new出查找字段的实体
Entity entityMember = new Entity("对应的实体名称", guid);
  1. 获取选项集类型
OptionSetValue optionSet = (OptionSetValue)entity["选项集字段"];
  1. 接收bool类型
bool result=entity.GetAttributeValue<Boolean>("两个选项字段名称");
  1. 小数取整对字段赋值
//将小数字段取出转换为double类型
double sum= ((double)entity["小数字段名称"]);
//小数四舍五入
EntityName["FileName"] = int.Parse(Math.Round(sum).ToString());
  1. 实体时间字段加一年赋值
EntityName["FileName"] = Convert.ToDateTime(entity["时间字段"]).AddYears(1);
  1. 查询(自定义)
//创建查询表达式
QueryExpression query = new QueryExpression("实体名称");
//设置显示的列
query.ColumnSet = new ColumnSet(new string[] { "列1", "列2", "列3"});
//创建条件表达式,查询会员id对应的积分账户
ConditionExpression condition = new ConditionExpression()
{
    //条件等于那一列
      AttributeName = "列名",
     Operator = ConditionOperator.Equal
};
//列名的条件,等于的id
condition.Values.Add(id);
//将条件表达式绑定到查询表达式上
query.Criteria.AddCondition(condition);
//获取查询结果集合
EntityCollection collection = service.RetrieveMultiple(query);
  1. 查询2(根据筛选配置)
string detailwhere= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
detailwhere+= "";
//创建条件表达式
FetchExpression condition = new FetchExpression(detailwhere);
//根据条件查询查询符合的entity集合
DataCollection<Entity> select = service.RetrieveMultiple(condition).Entities;

小Monkey还会不断补充的

到此就结束啦,快去练习一下吧!欢迎大佬和小Monkey沟通。
在这里插入图片描述

感谢大佬指正 小Monkey
如果你觉得有用的话,就留个赞吧!蟹蟹

你可能感兴趣的:(Dynamics,CRM,crm)