我有以下对象模型:
class ObjectA{
public string Description {get;set;}
}
class ObjectB{
public string Description {get;set;}
public ObjectA A {get;set;}
}
class ObjectC{
public string Description {get;set;}
public ObjectB B {get;set;}
}
class ObjectD{
public string Description {get;set;}
public ObjectC C {get;set;}
public ObjectA A {get;set;}
}
我的表格如下:
A:ID(整数),描述(字符串)
B:ID(整数),DESCRIPTION(字符串),A_ID(整数)
C: ID(int)、DESCRIPTION(字符串)、B_ID(int)
D:ID(整数),描述(字符串),C_ID(整数),A_ID(整数)
在表 D 中,A_ID 是表 A 主键的外键。最初这样做是为了方便您ObjectA
从ObjectD
:访问ObjectD.A
。这导致必须将表 A 中的 ID 添加到每个想要以ObjectA
这种方式访问的表中,从而使数据库非规范化(想象一下ObjectE
,ObjectF
所有想要轻松访问的表ObjectA
)。在这种情况下ObjectB
,将始终引用ObjectA
.
我想摆脱所有表中对 A_ID 的引用,但我希望能够ObjectA
从我的类中轻松访问。我知道我可以在需要的时候ObjectD.ObjectC.ObjectB.ObjectA
得到ObjectA
,但这似乎违背了延迟加载对象的目的。
如何映射我的ObjectD
,以便我可以直接访问而ObjectA
无需ObjectA
在 ' 表中的 ID ObjectD
?
注意:我使用 hbm/xml 文件来映射我的类。