Nhibernate - Каскадное обратное не сохраняется - PullRequest
0 голосов
/ 18 апреля 2011

Я создаю небольшое веб-приложение и использую nhibernate в качестве своего DAL. У меня следующая ситуация:

Father class - Profile Class:
{
    long ID
    string Name
    [A whole bunch of info]
    List<Voting> Votes
}

Son class - Votes Class:
{
     long id
     short rating
}

Это мое отображение:

HasMany(o => o.Votes)
              .LazyLoad()
              .AsBag()
              .Inverse()
              .Cascade.All();

Я хочу, чтобы произошло следующее: Пользователи смогут оценивать профиль, и тогда все, что мне нужно, это просто вызвать обновление самого профиля, а не отправлять вызов Сохранить для каждого голосования.

Это то, чем я сейчас занимаюсь:

var myProfile = new Profile();
myProfile.Rate(1,2);
myProfile.Rate(5,2);
myProfile.Rate(20,2);
Session.SaveOrUpdate(myProfile);

К сожалению, ничего не спасется. Почему?

Спасибо!

1 Ответ

1 голос
/ 18 апреля 2011

Если ваш один-ко-многим сопоставлен как обратный, другой стороне необходимо знать родительский объект. Поэтому вашему классу Votes нужна ссылка на профиль (сопоставленный как многие-к-одному).

Вы также должны убедиться, что эта ссылка на родительский объект установлена ​​в вашем коде.

Дополнительное примечание: ваш пример кода не имеет особого смысла. Если вы создаете новый профиль, вам нужно вызвать Session.Save, а не Session.Update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...