如何批量加载CRM自定义实体

时间:2015-04-06 14:21:55

标签: dynamics-crm dynamics-crm-2013

我使用CRM 2013,我希望根据列表中的值返回大量自定义实体(大约100个)。

我无法context.MyCustomEntity.Where(i=>list.Contains(i.Id));

我无法使用RetrieveMultiple,因为我想更新这些实体并将其发送回服务器。

所以我被迫在一个循环中呼叫context.MyCustomEntity.Where(i=>i.Id == id)

有什么地方可以从上下文中预取实体吗?或者在循环中的where子句上调用execute?

1 个答案:

答案 0 :(得分:2)

如果您已拥有Id,并且不需要在记录上引用任何现有动态值,则只需更新记录即可。这是一个例子:

var toUpdate = new MyCustomEntity{Id=id};
// update appropriate values
orgService.Update(toUpdate);

但是,如果确实需要动态更新字段,则可以使用PredicateBuilder执行动态OR条件,从而对检索进行分块,但是您可以添加到查询中的条件数量有限。如果这是你需要走的路,请告诉我,我可以提供更多的指导。