NHibernate显式列映射

NHibernate显式列映射,nhibernate,fluent-nhibernate,nhibernate-mapping,has-many,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Has Many,我有一组fluent对象映射,如下所示: public class UserMap : ClassMap<User> { public UserMap() { Map(x => x.Id); Map(x => x.Status); } } public class SpecialUserMap : SubClassMap<SpecialUser> { public SpecialUserMap(

我有一组fluent对象映射,如下所示:

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时,我会得到一个未定义列“Status”的错误,正如在生成的SQL中一样,NHibernate尝试从SpecialUser表而不是用户表中获取Status列。
有没有办法明确告诉NHibernate哪个表可以在DirectoryMapping中获取Status列?

用户/SpecialUser的Status属性需要映射到数据库中的单个列上。你不能让它有时来自用户,有时来自SpecialUser


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

用户/SpecialUser的状态属性需要映射到数据库中的单个列上。你不能让它有时来自用户,有时来自SpecialUser


作为一种解决方法,您可以向SpecialUser添加SpecialUserStatus属性,然后可以轻松地查询该属性。

假设SpecialUser扩展了用户,则映射看起来适合映射。我猜这是一个bug。

假设SpecialUser扩展了用户,那么映射看起来适合映射。我猜这是一个bug。

下面的数据库只有一个状态列,它位于用户表中。下面的数据库只有一个状态列,它位于用户表中。