NHibernate 3.x:相同的表,三个映射,每个结果三次

时间:2011-03-24 12:14:44

标签: c# .net sql nhibernate queryover

我有三种实体类型:A,B和C.

这些映射到同一个数据库表。

B和C继承A.

数据库表中有三条记录,由A,B和C映射。

每当我在配置文件中保留B和C时,我会得到每个实体三次。

我试图删除B和C的映射,然后,我得到了整数个实体:三个。

最后,我描述了SQL Server,从应用程序启动的查询被翻译成三个SQL SELECT命令。

我该如何避免这种情况?或者我想知道是否可以将N个类映射到同一个表,而不意味着尝试获取实体将在映射目标表时多次检索它。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

您需要使用继承映射策略映射类层次结构,而不是单独映射每个具体类。由于您已将所有三种类型存储在一个表中,因此应使用每类映射。请参阅thisthis