每个层次结构映射问题的NHibernate表

时间:2010-02-25 14:40:14

标签: nhibernate

我们有以下表结构:

tbl_A 
   A_ID INT PK 
   Type_ID INT 

tbl_EA 
   EA_ID INT PK 
   A_ID FK to tbl_A 
   C_ID INT (reference to other table based on Type_ID from tbl_A) 

tbl_C 
   C_ID INT PK 

所以,我们认为tbl_A是抽象类,每个类型都是 子类,基于Type_ID的鉴别器。但后来我们遇到了 处理tbl_EA的问题。它有一个“假的”鉴别器 加入tbl_A以确定类型。这是b / c有一个 tbl_EA中的Type_ID列是多余的,您必须在tbl_A上加入 无论如何要获取这些数据(表中有更多列,但没有 需要这个)。然后,我们必须以某种方式映射关系b / w tbl_C和tbl_EA。

获取C实体的所有EA项的SQL:select * from tbl_EA where C_ID = AND A_ID IN(从tbl_A中选择A_ID,其中type_id =)。

关于如何为这些表设置映射的任何想法,以及相应的 关系?我觉得答案可能在于一个公式 鉴别器,但无法弄清楚。

1 个答案:

答案 0 :(得分:0)

你不能让鉴别者加入。

只是一个类型列表,还是一个实际的实体? A和EA是一对一的吗?

通常,最好从您想要的对象模型开始,然后从那里开始工作,即使您的表结构是固定的。