2011-09-27 53 views
1

我正在使用NHibernate来映射DataModel。 Unfotunatley数据库由于缺少键/约束而包含一些不一致的数据。目前我坚持使用m:n映射,其中地图表上的某些键引用了缺失的数据。 下面是一些示例数据:NHibernate映射到的数据不一致

Table: Foo 
id Value 
0 A 
1 B 
2 C 

Table: Bar 
id Value 
10 X 
20 Y 
30 Z 

Table: Map 
foo_id bar_id amount 
    0  10  2 
    0  11  4 
    1  12  5 
    2  20  8 

我想获取所有的富,也有一间酒吧。在(T)SQL中,我只是使用连接。我厌倦了一些映射(像引用+可空等),但由于映射表包含一个键,NHiernate似乎期望一个实体。

有什么建议吗?

+0

如果链接表包含“缺少”ID,为什么不删除它们并将约束放回? – mathieu

+0

@mathieu或者构建一个视图并将其映射到它上面。 –

+0

由于非常高的影响风险,我无法对数据库执行修改。 – Jaster

回答

1

您可以使用not-found="ignore"属性(流利中的NotFound.Ignore())。