Каковы недостатки сохранения родителя как свойства ребенка в свободном доступе к NHibernate? - PullRequest
0 голосов
/ 19 декабря 2009

Я использую Fluent NHibernate / Automapping, и у меня есть класс, у которого есть коллекция, и у каждого элемента в этой коллекции есть собственная коллекция.

public class A
{
   public virtual IList<ClassB> Items { get; set; }
}

public class B
{
   public virtual IList<ClassC> ChildItems { get; set; }
}

Это относится к этому вопросу , на который так и не был дан ответ, но он был разрешен OP, оставив родительский объект на дочернем объекте и пометив его как ненулевой.

public class C
{
  [NotNull]
  public virtual ClassB Parent { get; set; }

  // Other stuff
}

Является ли это единственным способом установить внешний ключ как ненулевой в Fluent NHibernate? Возможно, это глупый вопрос, но у меня нет причин знать, что такое родительский объект, поэтому обладание этими свойствами было бы бесполезно. Если это единственный способ, есть ли недостатки в этом? Стоило ли бы это того, чтобы мой код мог просто обрабатывать отношения?

1 Ответ

0 голосов
/ 19 декабря 2009

Предполагая, что вы используете плавные сопоставления вместо автоматического сопоставления, вы можете использовать это в своем файле сопоставления:

HasMany(x => x.ChildItems).Not.Null();
...