在CRM中请求最新版本的实体

时间:2016-10-06 19:32:33

标签: c# .net dynamics-crm-2011

我使用Organization Service更新实体:

    _organizationService.Update(contact);

然后我想通过发布类似的东西立即查询CRM以获取该记录的最新版本:

_xrmServiceContext.ContactSet.FirstOrDefault(x => x.Id == contactGuid);

我注意到_xrmServiceContext正在返回旧数据,除非我在请求更新数据之前执行Thread.Sleep(1000)。

有没有办法等待"直到数据更新?

我认为this是一种可能的解决方案;但是,我不确定如何更改我的实现以匹配此模式。

1 个答案:

答案 0 :(得分:2)

XrmServiceContext将组织服务作为缓存的参数。

使用明确的更改_xrmServiceContext.ClearChanges();

或者,您可以通过传递新组织服务来新建另一个XrmServiceContext对象。

var uncachedOrganizationService = new OrganizationService("Xrm");
var uncachedXrmServiceContext = new XrmServiceContext(uncachedOrganizationService);
uncachedXrmServiceContext.ContactSet.FirstOrDefault(x => x.Id == contactGuid);