检查是否已将实体添加到CrmServiceContext(保存之前)

时间:2019-05-24 10:54:11

标签: c# dynamics-crm

我正在使用C#读取.csv文件并将其内容上传到CRM。该文件包含有关可能需要创建/更新的多个实体的信息。 我想使用CrmServiceContext进行更改,并最后一次调用SaveChanges。

当有多个行引用同一个帐户(或任何实体,但我将在此示例中使用帐户)时,就会出现问题,而该行在数据库中尚不存在。

我的最初想法是查询上下文AccountSet以查看是否存在具有给定名称的帐户,如果不存在,则创建Account对象并使用AddObject将其添加到上下文中。但是,这将导致创建多个副本,因为使用AddObject直到保存更改后才将实体添加到集合中。

我知道我可以在每个新对象之后执行SaveChanges或改用IOrganizationService.Create,但这会使上传花费更长的时间,因此我宁愿避免这样做。检查具有给定属性值的实体是否已经设置为要创建的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您使用相同的上下文吗?实际上,即使未提交事务,它也应该向上下文中添加新实体,您可以在下一次添加之前检索它。将实体添加到上下文后,您是否会附加它?

https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/org-service/organizationservicecontext

您能提供用于添加新实体的代码吗?

您还可以使用import { Broadcaster } from '../BrodcastService.service'; export class ComponentOne implements OnInit { constructor(private broadcaster: Broadcaster) { } someFunction() { // here we subscribe our subject and getting a value of msg1 key this.broadcaster.on('msg1').subscribe(resp => { console.log(resp); }) } 集合检查新添加的实体(所有未提交的更改都添加到那里)

GetAttachedEntities()