标签: c# .net sql nhibernate queryover
我有三种实体类型:A,B和C.
这些映射到同一个数据库表。
B和C继承A.
数据库表中有三条记录,由A,B和C映射。
每当我在配置文件中保留B和C时,我会得到每个实体三次。
我试图删除B和C的映射,然后,我得到了整数个实体:三个。
最后,我描述了SQL Server,从应用程序启动的查询被翻译成三个SQL SELECT命令。
我该如何避免这种情况?或者我想知道是否可以将N个类映射到同一个表,而不意味着尝试获取实体将在映射目标表时多次检索它。
提前谢谢。
答案 0 :(得分:4)
您需要使用继承映射策略映射类层次结构,而不是单独映射每个具体类。由于您已将所有三种类型存储在一个表中,因此应使用每类映射。请参阅this和this。