【问题标题】:NHibernate map to inconsistent DataNHibernate 映射到不一致的数据
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 2014-12-02
    • 2012-06-26
    • 1970-01-01
    相关资源
    最近更新 更多