2015-11-24 2 views
1

Итак, я использую CRM 2011. Чтобы повысить производительность, я начал использовать ExecuteMultipleRequest. Он отлично работает при создании множества записей одновременно. Большой! Проблема у меня есть, что сразу после того, как я сделалКак получить обновленные объекты с Linq после ExecuteMultipleRequest

context.Execute(myMultipleRequest); 

и получил правильный ответ с обратными идентификаторами, если я тогда сделать

context.myEntitiesSet.Where(x => x.Name == "foo") 

(в основном опрашивать объекты только что создали) Я надеваю 'вернуть действительные объекты, то есть их идентификаторы пусты (Guid.Empty).

Так, кажется, я должен выбрать либо использование:

  • использования context.Create(), context.Update(), context.Where(...), et.c. или
  • использование context.Execute(multiple) и context.RetrieveMultiple()

Там, кажется, не быть серединой, так как контекст, кажется, не обновить, какие объекты он отслеживает, когда я использую ExecuteMultipleRequest. Это моя основная проблема. Я могу создавать объекты просто отлично, но если я хочу их запросить, я не могу использовать запрос linq в контексте, тогда я должен использовать RetrieveMultiple.

Я получил это назад или это хорошо известно при использовании CRM? Я опытный разработчик, но относительно новый для CRM.

Должен ли я позвонить context.AttachObject() сам для всех вновь созданных объектов при использовании ExecuteMultipleRequest?

Любая помощь будет оценена по достоинству. О, и я использую ранние связанные объекты.

ответ

1

Я не верю, что CrmLinqProvider был расширен для обработки вашего экземпляра. ExecuteMultipleRequest возвращает объект ExecuteMultipleResponse, содержащий результаты каждого запроса. Вам нужно будет пройти через это, чтобы определить идентификаторы и обновить их самостоятельно.

+0

Спасибо, это примерно то, что я сделал. Я извлекаю идентификатор, который я возвращаю в ответ. –

Смежные вопросы