无法使用插件中的 LINQ 检索 CRM ServiceContext AddObjects

CRM ServiceContext AddObjects not retrievable with LINQ in plugin

我目前正在创建一些对象,设置它们的值,然后将它们添加到上下文中,就像这样;

var address = new Customaddress();
address.Id = Guid.NewGuid();
address.CustomField = "test";

serviceContext.AddObject(address);

这很好用。但是稍后在插件中,在调用 SaveChanges() 之前,我正在尝试检索这些创建的地址的列表,如下所示;

var addresses = serviceContext.CustomAddressSet.Where(...);

生成的地址列表包含我更改之前的内容。在调用 SaveChanges() 之前,是否有任何方法可以随后从上下文中查询添加的对象列表?

感谢您的指点。

没有。这是行不通的,因为您可能已经查询过将值放入上下文中,否则只需跳过上下文并使用 IOrganizationService 的实现创建记录(而不是创建一个 OrganizationServiceContext 消耗IOrganizationService.)

并且,坦率地说,如果您尝试这样做,您就是在误用 ​​OrganizationServiceContext class:模型是 CreateContext->Query->Modify-> SaveChanges->DisposeContext.