Microsoft CRM 2011中PreImage的早期绑定

时间:2011-10-18 19:44:57

标签: dynamics-crm-2011

Microsoft CRM高级开发人员扩展程序让我对早期绑定对CRM的Web服务的调用感到有些不满。

我正在写一个插件,我想访问前映像中定义的属性。所有示例都将preimage转换为Microsoft.Xrm.Sdk.Entity,它使用后期绑定来访问它的属性。我不喜欢将属性名称的所有字符串硬编码到我的插件中,并希望找到一种通过使用早期绑定来避免它的方法。

以下是演员

的示例
var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"]; 

但我必须使用后期绑定来访问属性

var myProperty = preMessageImate.Properties["MyProperty"];

有没有办法将这个preimage转换为xrm对象,该对象具有使用早期绑定定义的所有属性,因此我不必对所有属性名称进行硬编码?

1 个答案:

答案 0 :(得分:7)

首先应该使用SDK中的crmsvcutil工具生成“早期绑定”的Xrm实体,并在插件代码库中包含该代码文件。

我建议省略'DataContextName'命令行arg,这样就不会生成上下文。

有关详细信息,请参阅MSDN:CrmSvcUtil on MSDN

接下来,您应该使用Entity类上的ToEntity<T>方法来获取强类型的特定实体。更多信息:ToEntity on MSDN