MSCRM: как создавать объекты и устанавливать отношения с помощью поставщика xRM linq

Нужно ли мне сохранять только что созданные экземпляры CRM-сущностей, прежде чем я смогу установить отношения с другими экземплярами crm-сущностей?

Я столкнулся с проблемой, что после вызова CrmDataContext.SaveChanges() вновь созданные объекты записываются в базу данных, но отношения между этими вновь созданными экземплярами отсутствуют в базе данных.

Что мне не хватает? Должен ли я вызывать CrmDataContext.SaveChanges() каждый раз, когда я создаю новый экземпляр объекта CRM, который я хочу иметь отношения с другими экземплярами объекта CRM?


person Chris Richner    schedule 17.06.2010    source источник


Ответы (1)


Вы должны иметь возможность установить отношения с другими объектами в отношении 1:N перед сохранением этого объекта (т.е. поиска).

Если вы хотите, чтобы на ваш объект ссылался другой объект, он должен быть сначала сохранен ИЛИ вам нужно сначала установить Guid для объекта. В противном случае ваша ссылка не прикрепится.

Когда вы создаете новый объект, его идентификатор не устанавливается до тех пор, пока он не будет сохранен в базе данных, если только вы не установите его вручную. Если вы установите его вручную, он будет уважать новый Guid, который вы ему дали, и отношения переживут процесс сохранения.

Если вы пытаетесь сохранить объект по отдельности, вам нужно убедиться, что вы сохранили все объекты, на которые он ссылается, прежде чем сохранять этот объект, иначе у него не будет связи.

person Mark Kovalcson    schedule 07.08.2010