NHibernate QueryOver仅适用于超类

时间:2012-06-29 13:30:36

标签: nhibernate polymorphism queryover superclass

我现在正在使用NHibernate和Table-per-class继承进行战斗。

我有一个基类(我们称之为Base)和10个派生类。有时我只想在Base类上进行查询而不在子类上留下外部连接。

var query = dao.CurrentSession.QueryOver<Base>()
   .JoinQueryOver(b => b.Property)
   .Where(p => p.FirstName == "Max")
   .Select(a => a.Id).Take(10);

我得到的是sql查询中的很多“左外连接”,我并不真正需要它,这也会降低查询的性能。

在这种情况下,以某种方式摆脱多态吗?有没有办法更改继承模型并从其他不在层次结构中的类派生Base类?

1 个答案:

答案 0 :(得分:1)

在Base映射文件中,设置以下内容:

polymorphism=”explicit”