Почему некоторые связанные сущности сохраняются, а не другие в службах RIA? - PullRequest
0 голосов
/ 06 мая 2011

У меня много проблем с RIA Services.Мне действительно интересно, стоит ли это вообще хлопот.У меня сейчас проблема похожа на другие проблемы: связанные сущности.Допустим, у меня есть класс, Фу.У Foo есть две связанные сущности, Bar и Fighter.

Если я работаю над новой Foo, foo, и я хочу добавить что-то в коллекцию Bars, она работает просто отлично.Например:

foo.Bars.Add(new Bar{A=a, B=b});

Но когда я пытаюсь добавить Fighter, он не работает:

foo.Fighters.Add(new Fighter{C=c,D=d});

Я был в поисках решения по всему Интернету.Я нашел предложения использовать атрибут [Include] и атрибут [Associated].Оба работали в некоторых случаях.Но они не работают в этом случае, и я понятия не имею, почему.Я удалил и заново создал свой EDMX и мой DomainService, потому что кто-то предложил это, но он не работает.

Так что же не так и какая другая информация вам нужна, чтобы помочь мне?Когда я говорю, попробуйте добавить Fighter в мою коллекцию foo.Fighters, она не сохраняется.Я отмечу, что я пытаюсь добавить существующий Истребитель в моем конкретном примере, а не новый Истребитель, если это помогает / дает подсказки.

Если выНужна информация или реальные примеры кода, я буду рад вам помочь.Заранее спасибо всем, кто пытается помочь.

1 Ответ

1 голос
/ 06 мая 2011

Количество вещей для проверки и подтверждения

  1. Таблица Fighter имеет внешний ключ, определенный в базе данных.
  2. Используйте атрибуты [Association], [Include] и [Composition]. Ассоциация определяет отношения. Включение инструктирует сервер отправлять экземпляр или содержимое коллекции клиенту, если он заполнен. Композиция инструктирует WCF RIA отслеживать изменения в коллекции и отправлять их обратно на сервер.
  3. Убедитесь, что вы звоните context.SubmitChanges() после всех добавлений в Silverlight.
  4. Убедитесь, что у вас есть метод вставки на вашем DomainService.

Может быть, один или несколько из них помогут.

...