【问题标题】:NHibernate: mapping a referenceNHibernate:映射引用
【发布时间】:2012-12-09 08:21:04
【问题描述】:

本质上,我正在尝试使用 NHibernate 执行以下操作(试图使其易于理解):

SELECT p.*
FROM ChildTable c
INNER JOIN ParentTable p ON p.Id = c.ParentId AND p.Language = :language

我当然希望p.* 作为ChildObjectParentObject 类型的属性。

ChildTable 没有语言列。所以 :language 被视为程序中的一个常量。

我正在考虑创建一个从 c.ParentId 转换为 ParentObject 并再次返回的 UserType(转换取决于:语言)。

这可能吗?

我已经为别的东西做了一个简单的 IntToString IUserType。

然后我会在NullSafeGet 方法中执行一个普通的session.Get<ParentClass>(idLangIndexObject),还是会影响IUserType 的任何内部结构?

我也试过在ParentClassMapping 上做ApplyFilter()(试图只减少一种:语言),但References() 似乎在内部使用Get,而Get 忽略ApplyFilter()

还有其他更优雅的想法吗?

一定有办法,毕竟这不是火箭科学。

【问题讨论】:

    标签: nhibernate join mapping


    【解决方案1】:

    您所拥有的是从孩子到父母的一对多或多对多关系(不是多对一),因为每个孩子显然可以有多个父母。将其映射为集合以正确反映这一点,并且集合负载将考虑过滤器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多