我现在正在使用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类?
答案 0 :(得分:1)
在Base映射文件中,设置以下内容:
polymorphism=”explicit”