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