Мне интересно, какой будет лучший дизайн для сохранения нового дочернего объекта с помощью NHibernate без случайной перезаписи родительского объекта в базе данных.
У меня проблема в том, что дочерняя сущность будет выглядеть примерно так:
class Child
{
Parent Parent;
// other fields
}
Моя проблема заключается в том, что дочерний элемент был предоставлен из уровня пользовательского интерфейса вместе с идентификатором родителя, и это означает, что родительский ref в основном неинициализирован: у него будет заполненный идентификатор, но все остальное будет нулевым - потому что единственный способ заполнение его полей было бы дополнительным обращением к базе данных, чтобы прочитать их.
Теперь, если я позвоню Session.SaveOrUpdate(child)
в NHibernate, что произойдет с родителем. Я не хочу, чтобы NHibernate каскадно сохранял неинициализированный родительский элемент, поскольку это просто уничтожило бы данные в базе данных. Как бы люди подошли к этой проблеме? Какие-нибудь лучшие практики?