如何在流利的nhibernate中添加引用条件?

时间:2012-09-05 08:37:41

标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping

在我的ClassMap中,我只想在满足条件时加载属性。这是我现在使用的代码:

References<MyObject>(x => x.Property).ForeignKey("RecordId");

我想为此添加一个Where子句:只有当数据库中的值为零时才加载x.Property,如下所示:

References<User>(x => x.Property).ForeignKey("RecordId").Where("Removed = 0"); // Where Removed is a column of the user table 

但不幸的是,这不起作用。有人知道这个的等价物吗?

1 个答案:

答案 0 :(得分:4)

ClassMap课程中,我添加了Where子句:

public class ClassAMap : ClassMap<ClassA>
{
    public ClassAMap()
    {
        Table("ClassA");

        // Only load Class A where the user is not removed
        Where("PersonRecId in (select u.Userid from Users u where u.Removed = 0)");

        Id(c => c.Id).GeneratedBy.Identity();

        References<User>(x => x.User).ForeignKey("UserId");
    }
}

注意:您需要在Where子句中使用别名,否则会出错。