【发布时间】:2012-07-01 00:58:46
【问题描述】:
我现在正在与 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 查询中有很多我并不真正需要的“左外连接”,它也降低了查询的性能。
在这种情况下是否有可能摆脱多态性?有什么方法可以改变继承模型并从其他不在层次结构中的类派生基类?
【问题讨论】:
标签: nhibernate polymorphism queryover superclass