【发布时间】:2009-12-10 21:43:14
【问题描述】:
假设我有一个名为 Pet 的基类和两个继承 Pet 的子类 Cat 和 Dog。
我只是将它们映射到三个表 Pet、Cat 和 Dog,其中 Pet 表包含基类属性,Cat 和 Dog 表包含 Pet 表的外键以及特定于猫或狗的任何其他属性。加入子类策略。
现在,使用 NHibernate 和 ICriteria,我怎样才能获得所有不同宠物的列表作为 Pet 对象,不是 Cat 或 Dog 对象 - 只是普通的 Pet 对象,而不与另一个进行任何连接表?我只对 Pet 中包含的信息感兴趣。
【问题讨论】:
-
我不得不求助于原生 SQL 来让这个工作。但这给了我很多代码来动态构建查询字符串,例如基于过滤器。必须有一种方法可以仅使用 ICriteria 来做到这一点。 Ayende 一定有想过,对吧?
-
我很好奇这是否可以用 HQL 完成——这篇文章 (randomcode.net.nz/2008/09/19/…) 表明它可以,但您的情况不同,因为您将结果限制为基类类型。跨度>
标签: nhibernate icriteria