4

在閱讀this SO question之後,我注意到link in the question提到了Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,Microsoft.Xrm.Client.CodeGeneration引用CodeGeneration.CodeCustomization對早期綁定生成的CRM實體做出哪些更改?

它比標準代碼gen有什麼優勢?根據LameCoder,它將所有實體更改爲從Microsoft.Xrm.Client.CrmEntity繼承,而不是`Microsoft.Xrm.Sdk.Entity。這會產生什麼樣的變化以及創建了哪些其他更改?

回答

3

這裏是best site I could currently find於它:

  • CrmSvcUtil & OrganizationServiceContext增強,如懶加載
  • 與連接對話框UI
  • 客戶端緩存擴展
  • 簡化的連接管理
  • 工具用於加快客戶端開發的常見任務的擴展功能
  • 組織服務消息的實用功能,以方便調用常用的信息,如BulkDelete,添加成員到團隊等
  • 對象支持Microsoft.Xrm.Portal擴展

唯一真正的缺點我可以看到從CrmEntity繼承是它需要Microsoft.Xrm.Client dll或者在服務器上Gac'd,或者IL Mergal到Entities dll中。

另外一個缺點,這裏是我看到它添加功能:

  • 移到INotifyPropertyChanging和INotifyPropertyChanged的成基類,從而產生的代碼較小
  • 定義額外的類屬性
    • System.Data.Services.Common.DataServiceKeyAttribute
    • System.Data.Services.IgnorePropertiesAttribute(我假設這一個通過電線發送的數據較少?)
    • M icrosoft.Xrm.Client.Metadata.EntityAttribute(我相信這是用來支持惰性加載
  • 選項設置屬性更改可空整數現在
  • 貨幣屬性是可空的小數
  • 設置屬性值的值已經是,不會觸發屬性更改/更改事件
  • SetPrimaryIdAttributeValue會導致較小的代碼。
相關問題