Dynamics crm 2011 引用CodeGeneration.CodeCustomization对早期绑定生成的CRM实体做了哪些更改?

Dynamics crm 2011 引用CodeGeneration.CodeCustomization对早期绑定生成的CRM实体做了哪些更改?,dynamics-crm-2011,dynamics-crm-online,dynamics-crm-2013,Dynamics Crm 2011,Dynamics Crm Online,Dynamics Crm 2013,在阅读之后,我注意到引用了Microsoft.Xrm.Client.CodeGeneration.CodeCustomization和Microsoft.Xrm.Client.CodeGeneration 与标准代码gen相比,它有哪些优势?根据LameCoder的说法,它将所有实体更改为从Microsoft.Xrm.Client.CrmEntity继承,而不是从Microsoft.Xrm.Sdk.Entity继承。这会产生什么样的变化,以及会产生什么样的变化?以下是关于它的作用的说明: Cr

在阅读之后,我注意到引用了Microsoft.Xrm.Client.CodeGeneration.CodeCustomization和Microsoft.Xrm.Client.CodeGeneration

与标准代码gen相比,它有哪些优势?根据LameCoder的说法,它将所有实体更改为从Microsoft.Xrm.Client.CrmEntity继承,而不是从Microsoft.Xrm.Sdk.Entity继承。这会产生什么样的变化,以及会产生什么样的变化?

以下是关于它的作用的说明:

  • CrmSvcUtil和OrganizationServiceContext增强功能,如延迟加载
  • 使用连接对话框UI简化连接管理
  • 客户端缓存扩展
  • 用于常见任务的实用程序扩展功能,以加快客户端开发
  • Organization Service Message实用程序功能可轻松调用常见消息,如BulkDelete、向团队添加成员等
  • 对象以支持Microsoft.Xrm.Portal扩展
我能看到的从CrmEntity继承的唯一真正缺点是,它要求Microsoft.Xrm.Client dll要么在服务器上是Gac的,要么合并到实体dll中

除了这一缺点之外,我还看到它增加了以下功能:

  • 将INotifyPropertyChanged和INotifyPropertyChanged移动到基类中,使生成的代码更小
  • 定义其他类属性
    • System.Data.Services.Common.DataServiceKeyAttribute
    • System.Data.Services.IgnorePropertiesAttribute
      (我假设这一个通过网络发送的数据更少?)
    • Microsoft.Xrm.Client.Metadata.EntityAttribute(我相信这是用来支持懒散加载的
  • 选项集属性更改为可为null的整数
  • 货币属性现在是可为空的小数
  • 将属性值设置为已存在的值不会触发属性更改/更改事件
  • SetPrimaryDatTributeValue会产生更小的代码