填充集合时似乎没有使用FluentNHibernate Where子句

时间:2010-09-23 14:04:03

标签: nhibernate fluent-nhibernate nhibernate-mapping

我在FluentNHibernate映射中使用Where子句,如下所示:

public class FooMap : ClassMap<Foo>
{
  public FooMap()
  {
    Table("MySchema.Foos");
    Where("Deleted = 0");
    etc etc
  }
}

当我通过session.Load<Foo>(1)加载单个Foo实例时以及当我使用LINQ查询时,此where子句会附加到SQL。但是,如果另一个类有一个Foos集合并且我遍历集合,则生成的用于加载Foos的SQL不包含where子句。

这是FluentNHibernate中的错误,还是一般的NHibernate?或者我做错了什么?或者是(颤抖)一个'特征'?

1 个答案:

答案 0 :(得分:0)

这是事实,我不知道这是一个错误,一个功能,还是一个缺少的功能。我遇到了遗留数据库的同样问题,尽管我的关系是多对一的(“神”查找表)。

我认为理由是,一旦建立了外键关系,那么where子句就没有意义了。对于软删除表,请考虑使用过滤器或(我的首选项)映射到过滤已删除记录的视图,假设它们不需要出现在UI中。