Как обновить PrimaryEntity подключаемого модуля рабочего процесса CRM 2011 с C#?

Итак, обычно в плагине CRM я обращаюсь к основному объекту, используя следующий код:

(Entity)context.InputParameters["Target"]

Я заметил, что это все еще работает из контекста Create рабочего процесса; однако из специального использования я должен использовать следующее:

context.PreEntityImages.FirstOrDefault().Value

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

Я уверен, что это будет очевидно задним числом.

Заранее спасибо.


person Mike_Matthews_II    schedule 06.02.2013    source источник
comment
Что вы подразумеваете под нестандартным использованием? Вы хотите сказать, что синтаксис в первом примере не работает?   -  person Konrad Viltersten    schedule 07.02.2013
comment
Я, вероятно, должен просто пойти дальше и удалить этот вопрос. Моя реальная проблема заключалась в том, что даже после того, как я добрался до объекта, я получил исключение, сообщающее, что первичный объект уже был частью контекста через другой объект. Я решил эту проблему, установив для каждого измененного объекта значение context.UpdateObject, а затем сохранив его через context.SaveChanges (это контекст из crmsvcutil). Под ad-hoc я имею в виду, если я перехожу к сетке с объектом и выбираю его, а затем запускаю рабочий процесс.   -  person Mike_Matthews_II    schedule 07.02.2013
comment
Я бы оставил вопрос. Может кому-то когда-нибудь пригодится. :)   -  person Konrad Viltersten    schedule 07.02.2013
comment
@Mike_Matthews_II, вполне нормально ответить на свой вопрос. Это также удалит вопрос из списка без ответа;)   -  person ccellar    schedule 08.02.2013


Ответы (1)


Я решил проблему, установив для каждого измененного объекта значение context.UpdateObject, а затем сохранив его через context.SaveChanges (это контекст из crmsvcutil)

person Mike_Matthews_II    schedule 13.02.2013