NHibernate显式列映射
我有一组fluent对象映射,如下所示: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(
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。下面的数据库只有一个状态列,它位于用户表中。下面的数据库只有一个状态列,它位于用户表中。