所以,我正在使用CRM 2011.为了提高性能,我开始使用ExecuteMultipleRequest。一次创建多个记录时,它工作正常。大!我遇到的问题是在我完成
之后context.Execute(myMultipleRequest);
如果我做了
,则获得id为id的有效回复context.myEntitiesSet.Where(x => x.Name == "foo")
(基本上查询刚刚创建的对象)我没有得到有效的对象,这意味着他们的id是空的(Guid.Empty)。
所以,似乎我必须选择使用:
context.Create()
,context.Update()
,context.Where(...)
等。 或 context.Execute(multiple)
和context.RetrieveMultiple()
似乎没有中间立场,因为当我使用ExecuteMultipleRequest
时,上下文似乎没有更新它正在跟踪的实体。这是我的基本问题。我可以很好地创建对象,但是如果我想查询它们我不能在上下文中使用linq查询,那么我必须使用RetrieveMultiple
。
我是否已经倒退,或者在使用CRM时这是众所周知的?我是一名经验丰富的开发人员,但对CRM来说相对较新。
在使用context.AttachObject()
时,我是否应该为所有新创建的实体自行致电ExecuteMultipleRequest
?
任何帮助将不胜感激。哦,我正在使用早期绑定的对象。
答案 0 :(得分:1)
我不相信CrmLinqProvider已经扩展到处理你的实例。 ExecuteMultipleRequest返回一个ExecuteMultipleResponse对象,该对象包含每个请求的结果。您需要遍历此以确定ID,并自行更新。