引用CodeGeneration.CodeCustomization对早期生成的CRM实体进行哪些更改?

时间:2014-01-21 22:08:42

标签: dynamics-crm-2011 dynamics-crm-online dynamics-crm-2013

在阅读this SO question后,我发现link in the question引用了Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,Microsoft.Xrm.Client.CodeGeneration

它比标准代码有什么优势?根据LameCoder,它将所有实体更改为继承自Microsoft.Xrm.Client.CrmEntity而不是Microsoft.Xrm.Sdk.Entity。它做了哪些更改以及创建了哪些其他更改?

1 个答案:

答案 0 :(得分:3)

以下是best site I could currently find的内容:

  
      
  • CrmSvcUtil& OrganizationServiceContext增强功能,例如延迟加载
  •   
  • 使用连接对话框UI简化连接管理
  •   
  • 客户端缓存扩展程序
  •   
  • 实用程序扩展功能,用于加速客户端开发的常见任务
  •   
  • 组织服务消息实用程序的功能是可以轻松调用常见消息,例如BulkDelete,将成员添加到团队等。
  •   
  • 支持Microsoft.Xrm.Portal扩展的对象
  •   

我可以看到继承CrmEntity的唯一真正的缺点是它需要Microsoft.Xrm.Client dll要么是服务器上的Gac,要么是IL Mergered到实体dll。

除了这个缺点之外,以下是我看到它添加的功能:

  • 将INotifyPropertyChanging和INotifyPropertyChanged移动到基类中,使得结果代码更小
  • 定义其他类属性
    • System.Data.Services.Common.DataServiceKeyAttribute
    • System.Data.Services.IgnorePropertiesAttribute(我假设这个通过网络发送的数据较少?)
    • Microsoft.Xrm.Client.Metadata.EntityAttribute(我相信这用于支持LazyLoading
  • 选项集属性已更改为可为空的整数
  • 资金属性现在可以为小数
  • 将属性值设置为已有的值,不会触发属性更改/更改事件
  • SetPrimaryIdAttributeValue会产生更小的代码。