在Fluent NHibernate中将父级保持为子级属性有什么缺点?

时间:2009-12-19 09:14:31

标签: c# fluent-nhibernate automapping

我正在使用Fluent NHibernate / Automapping,我有一个有集合的类,该集合中的每个项目都有自己的集合。

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

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

这与this question有关,但从未得到解答,但由OP解决,将父对象保留在子对象上并将其标记为非空。

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

  // Other stuff
}

这是在Fluent NHibernate中将外键设置为非null的唯一方法吗?可能是一个愚蠢的问题,但我没有理由知道父对象是什么,所以拥有这些属性会有点无用。如果这是唯一的方法,这样做有什么不利之处吗?如果我的代码只能处理关系,那么它是否值得呢?

1 个答案:

答案 0 :(得分:0)

假设您使用的是流畅的映射而不是自动化,您可以在映射文件中使用它:

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