使用MSCRM 4中的C#从自定义实体中检索字段值

时间:2013-03-22 15:01:54

标签: c# field return-value dynamics-crm-4

在我们的CRM环境中,我们在自定义参数的设置中有自定义实体类型,其中实体包含名称,类型和值。我需要使用asp和C#在Web应用程序中获取其中一个“参数”来进行一些数学运算。我如何使用实体的ID在我的aspx.cs文件中检索该实体的值和类型字段,以便我可以创建一个与自定义参数实体对应的c#变量。

1 个答案:

答案 0 :(得分:0)

第一种方式

您可以连接到CRM Web Service,这是一个.asmx并从那里检索您的实体。只需将其添加为web reference即可。根据我的经验,将其添加为服务引用很麻烦,但添加为Web引用不是(因为“添加服务引用”的内容适用于WCF并且“添加Web引用”已经来自.asmx的开始。)

顺便说一句,如果您习惯使用CRM SDK编写插件和自定义工作流程活动,您可能会注意到:

  • 在幕后,CRM SDK程序集实际上正在调用CRM Web服务......它们只是以一种很好的方式包装它来促进插件的开发等。
  • 添加Web服务后,您将拥有一大堆可供选择的方法,并且您的实体现在是ASP.NET应用程序中的类。因为VS将导入服务的WSDL,所以它会将您的自定义实体识别为一等公民,并生成相应的类(即您不需要处理很多DynamicEntity,这与您的插件和自定义工作流程程序集开发不同)< / LI>

如果您对CRM中的实体进行更改(例如,添加字段,创建新实体等)以便您的应用程序同步,则更新/刷新Web引用也是一种很好的做法。如果您只使用一组狭窄的实体(在这种情况下听起来像它)并且它们没有改变,这不是必要的,但仍然是一种很好的做法。

第二种方式

您可以直接从_MSCRM数据库中获取它。

如果您想转到原始表,您的实体将有两个表:Base和ExtensionBase。您想要的数据(如果它是您为实体定义的属性)将位于ExtensionBase表中。如果你想使用它,还会有一个加入Base和ExtensionBase表的视图。

您还可以查询已过滤的视图,但是如果您这样做,则需要确保运行ASP.NET应用程序的帐户(因此,当部署到IIS时,这将是应用程序池标识)可以访问CRM作为针对过滤后的视图运行针对主叫用户的CRM安全检查。

另请注意,直接访问数据库表或视图在技术上不受支持。反对过滤后的视图应该没问题。

我建议采用第一种方式,但我已经看到过去两种方法都已完成,两种方法都应该有效。