【发布时间】:2011-09-27 08:52:51
【问题描述】:
我正在使用 NHibernate 来映射 DataModel。 Unfotunatley 由于缺少键/约束,数据库包含一些不一致的数据。目前我被困在一个 m:n 映射中,其中映射表上的一些键引用了丢失的数据。 这是一些示例数据:
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
我想获取所有的 Foo,也有一个 Bar。在 (T)SQL 中,我只会使用连接。我已经厌倦了几个映射(比如引用 + 可为空等),但是由于映射表包含一个键,NHiernate 似乎需要一个实体。
有什么建议吗?
【问题讨论】:
-
如果链接表包含“缺失”的 id,为什么不直接删除它们,然后放回约束?
-
@mathieu 或者构造一个视图并将您的实体映射到它上面。
-
由于影响风险非常高,我无法对数据库执行修改。
标签: c# nhibernate fluent-nhibernate