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

How to bulk load CRM custom entities

我正在使用 CRM 2013,我想 return 基于列表中的值的大量自定义实体(大约 100 个)。

我做不到context.MyCustomEntity.Where(i=>list.Contains(i.Id));

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

所以我不得不循环调用context.MyCustomEntity.Where(i=>i.Id == id)

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

如果您已经有了 ID,并且不需要引用记录中的任何现有动态值,则只需更新记录即可。这是一个例子:

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

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