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

Requesting the most recent version of an entity in CRM

我正在使用 Organization Service:

更新实体
    _organizationService.Update(contact);

然后我想通过发出类似以下内容的命令立即向 CRM 查询该记录的最新版本:

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

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

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

我正在考虑 this 作为可能的解决方案;但是,我不确定如何更改我的实现以匹配此模式。

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

使用清除更改_xrmServiceContext.ClearChanges();

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

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