我有3类,如:用相同名称的属性HQL查询两个子类
public class Animal
{
... all sort of data ...
}
public class Cat : Animal
{
... more data ...
public virtual int Size { get; set; }
}
public class Dog : Animal
{
... other data ...
public virtual int Size { get; set; }
}
类是使用了“每一个分层表”的策略中的hbm.xml映射猫的Size属性映射映射到CatSize柱和狗的属性DogSize
以下两个查询按预期工作:
From Cat o Where o.Size = 1
From Dog o Where o.Size = 1
现在我想查询动物的所有猫科动物,其中大小= 1和人L上的狗,其中大小= 1,这两个查询结合上面我得到:
这显然我想要的东西没有做,我怎么能告诉NHibernate的第一个尺寸是Cat.Size,第二个是狗.Size(最好不知道数据库中的列名)。
注意:我知道设计是有问题的,在不同的子类中有两个同名的属性不是有史以来做出的最聪明的设计决定 - 但现在改变它更成问题,我想避免它(项目应该在几天内交付给客户,我真的不想现在进行设计更改)。我正在使用NHibernate 2.0.1(升级不是一个选项,该程序不适用于NHibernate的后续版本,我们现在没有时间修复它)。
在真正的应用程序的属性的意义是在两个子类不同,还有其他没有它的子类,感谢MultiQuery解决方案 – Nir 2010-11-10 08:04:54