Службы RIA: вставка нескольких объектов модели презентации

Я делюсь данными через службы RIA, используя модель представления поверх классов LINQ to SQL. В клиенте Silverlight я создал несколько новых объектов (альбом и исполнитель), связал их друг с другом (добавив альбом в коллекцию альбомов художника или установив свойство Artist в альбоме - либо один из них работает), добавив их в контекст, и представленные изменения.

На сервере я получаю два отдельных вызова Insert - один для альбома и один для исполнителя. Эти права являются новыми, поэтому для их значений идентификаторов установлено значение int по умолчанию (0 - имейте в виду, что в зависимости от моей БД это может быть действительный идентификатор в БД), поскольку, насколько я знаю, вы не устанавливаете идентификаторы для новых лиц на клиенте. Это все работало бы хорошо, если бы я передавал классы LINQ to SQL через мои службы RIA, потому что, хотя вставка «Album» включает в себя «Artist», а вставка «Artist» включает в себя «Album», обе являются сущностями, и контекст L2S распознает их. Однако, с моими объектами модели представления, мне нужно преобразовать их обратно в классы LINQ to SQLподдержание ассоциаций в процессе поэтому они могут быть добавлены в контекст L2S.

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

Это возможно, или я должен заняться другим дизайном?

Ответы на вопрос(1)

Ваш ответ на вопрос