我使用CRM 2013,我希望根据列表中的值返回大量自定义实体(大约100个)。
我无法context.MyCustomEntity.Where(i=>list.Contains(i.Id));
我无法使用RetrieveMultiple
,因为我想更新这些实体并将其发送回服务器。
所以我被迫在一个循环中呼叫context.MyCustomEntity.Where(i=>i.Id == id)
。
有什么地方可以从上下文中预取实体吗?或者在循环中的where子句上调用execute?
答案 0 :(得分:2)
如果您已拥有Id,并且不需要在记录上引用任何现有动态值,则只需更新记录即可。这是一个例子:
var toUpdate = new MyCustomEntity{Id=id};
// update appropriate values
orgService.Update(toUpdate);
但是,如果确实需要动态更新字段,则可以使用PredicateBuilder执行动态OR条件,从而对检索进行分块,但是您可以添加到查询中的条件数量有限。如果这是你需要走的路,请告诉我,我可以提供更多的指导。