我使用Organization Service更新实体:
_organizationService.Update(contact);
然后我想通过发布类似的东西立即查询CRM以获取该记录的最新版本:
_xrmServiceContext.ContactSet.FirstOrDefault(x => x.Id == contactGuid);
我注意到_xrmServiceContext正在返回旧数据,除非我在请求更新数据之前执行Thread.Sleep(1000)。
有没有办法等待"直到数据更新?
我认为this是一种可能的解决方案;但是,我不确定如何更改我的实现以匹配此模式。
答案 0 :(得分:2)
XrmServiceContext将组织服务作为缓存的参数。
使用明确的更改_xrmServiceContext.ClearChanges();
或者,您可以通过传递新组织服务来新建另一个XrmServiceContext对象。
var uncachedOrganizationService = new OrganizationService("Xrm");
var uncachedXrmServiceContext = new XrmServiceContext(uncachedOrganizationService);
uncachedXrmServiceContext.ContactSet.FirstOrDefault(x => x.Id == contactGuid);