NHibernate显式流畅的列映射

我有一组流畅的对象映射,如下所示:

public class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Map(x => x.Id);
        Map(x => x.Status);
    }
}

public class SpecialUserMap : SubClassMap<SpecialUser>
{
    public SpecialUserMap()
    {
        Map(x => x.Property);
    }
}

public class DirectoryMap : ClassMap<Directory>
{
    public DirectoryMap
    {
        Map(x => x.Id);
        HasMany(x => x.SpecialUsers).Where("Status = 0");
    }
}

用户是一个连接表,SpecialUser加入这个连接表以获取状态等信息。 但是,当我尝试在目录的SpecialUser集合中引用SpecialUser时,出现“未定义列状态”错误,如在生成的SQL中,NHibernate尝试从SpecialUser表获取状态列,而不是用户表。 有没有办法明确告诉NHibernate哪个表得到DirectoryMapping中的Status列?


User / SpecialUser的Status属性需要映射到数据库中的单个列。 你有时不能从用户那里得到,有时来自SpecialUser。

作为解决方法,您可以将SpecialUserStatus属性添加到SpecialUser,然后您可以轻松地进行查询。


假设SpecialUser扩展了用户,那么这种映射对于每个子类的映射看起来是正确的。 我的猜测是这是一个错误。

链接地址: http://www.djcxy.com/p/60983.html

上一篇: NHibernate explicit fluent column mapping

下一篇: MySQL .NET Connector 6.9.8