【问题标题】:A non-standard many-to-many relationship in NHibernateNHibernate 中的非标准多对多关系
【发布时间】:2011-07-10 06:33:06
【问题描述】:

我有两个通过多对多关系链接的表(规则和对象)。一条规则可以与任意数量的对象相关联,也可以与所有对象相关联。

我通常会与链接表建立此关联,如果关联的规则要与所有对象关联,则 Object_ID 列将设置为 NULL。任何不会实际引用真实对象的值都可以。

这样,我可以编写一个 Select 来查找与对象关联的所有规则,如下所示:

SELECT * FROM Rule JOIN RuleObject_Link on Rule.ID = RuleObject_Link.RuleID WHERE RuleObject_Link.ObjectID = <the object ID> or RuleObject_Link.ObjectID IS NULL

问题是我正在使用 NHibernate。我找不到在自动关系/集合结构中表示“所有对象”的方法。

是否可以使用 NHibernate 的多对多关系建立这样的关系?

还是我必须手动配置链接表并自己处理连接?

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    最好在Rule 中添加一个单独的布尔字段,表示它普遍适用于所有Object 对象(顺便说一下,Object 是一个非常糟糕的类名)。

    这确实不参与关系映射,并且获取对象的整个规则列表需要查询而不是从映射中自动填充,但我现在想不出更好的方法。

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 2011-03-16
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      相关资源
      最近更新 更多