【发布时间】:2011-01-17 00:03:26
【问题描述】:
我对此进行了一些搜索,但没有找到任何东西。是否可以创建一个 Hibernate 查询以基于鉴别器返回一组对象?
我有一个 AbstractUser 类,它由具体类 UserTypeA 和 UserTypeB 扩展。我使用 table-per-hierarchy 模型在 NHibernate 中映射我的类,因此 UserTypeA 和 UserTypeB 都存储在具有不同鉴别器值的同一个表中。这是我的鉴别器映射属性:
<discriminator column="Type" type="string"/>
我的表中有一个包含用户类型名称的列。我想知道是否可以使用它运行 NHibernate 查询。
我试过了:
public IList<DomainBase> FindByType(string typeName, Type type)
{
string query = "from " + type.Name + " k where k.Type = " + typeName;
return Session.CreateQuery(query).List<DomainBase>();
}
但是由于Type实际上不是类的属性,只是表中的一列,这显然是行不通的。除非有办法将属性用作鉴别器,否则同时拥有用于此目的的属性和鉴别器似乎是多余的?
【问题讨论】:
标签: c# nhibernate