【问题标题】:CRM ServiceContext AddObjects not retrievable with LINQ in pluginCRM ServiceContext AddObjects 无法在插件中使用 LINQ 检索
【发布时间】:2017-02-22 11:27:30
【问题描述】:

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

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

serviceContext.AddObject(address);

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

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

生成的地址列表包含我更改之前的地址。有什么方法可以在调用 SaveChanges() 之前从上下文中查询添加的对象列表?

感谢您的任何指点。

【问题讨论】:

    标签: c# linq dynamics-crm-2011 dynamics-crm-2013 dynamics-crm-2016


    【解决方案1】:

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

    坦率地说,如果你试图这样做,你就是在滥用 OrganizationServiceContext 类:模型是 CreateContext->Query->Modify->SaveChanges->DisposeContext

    【讨论】:

    • 好的,谢谢。正在发生的事情是我正在添加对象,然后传递给其他一些复制这些实体并执行其他工作的代码。这一切都需要在同一个事务中发生,所以我不能在调用 SaveChanges() 之前调用它。我将考虑单独发送实体而不是在上下文中发送。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    相关资源
    最近更新 更多