CRM SDK OrganizationServiceContext实体

时间:2017-12-06 22:19:40

标签: dynamics-crm microsoft-dynamics dynamics-crm-online dynamics-crm-2016 xrm

尝试将现有解决方案从已弃用的Microsoft.Xrm.Client命名空间迁移到仅使用来自CrmSvcUtil的生成的服务上下文,使用CrmSDK 9.0.0.5。

以前我们使用Microsoft.Xrm.Client.CodeGeneration.CodeCustomization来获取延迟加载的上下文。

我有两个相同解决方案的副本,并且已经完成了一些API更改。

我启用了代理类型

client.OrganizationServiceProxy.EnableProxyTypes();

根据我的理解,将其转换为以懒惰的方式行事。但是,没有任何导航属性按预期加载。

我在CrmServiceClient等转换过程中发现的一些博客文章表明,即使没有延迟加载,我也应该能够通过调用Entity.LoadProperty()来手动加载属性。加载属性或刷新数据。但是,在执行此操作后,导航属性仍为null(特别是我尝试使用Contact导航属性)。当我查看RelatedEntities集合时,它也是空的。

我知道该实体有一个相关的联系人项目,好像我使用Microsoft.Xrm.Client.CodeGeneration.CodeCustomization生成的上下文它返回它,我也可以使用高级搜索在CRM本身中看到它。

var connectionUri = ConfigurationManager.ConnectionStrings["Xrm"].ConnectionString;
var client = new CrmServiceClient(connectionUri);
client.OrganizationServiceProxy.EnableProxyTypes();
var context = new XrmServiceContext(client);

var result = context.new_applicationSet.FirstOrDefault(x => x.new_applicantid.Id == CurrentUserId);
//result.Contact is null
context.LoadProperty(result, "Contact");
//result.Contact is still null
//result.RelatedEntities is empty

0 个答案:

没有答案