NHibernate:映射引用

时间:2012-12-21 18:40:02

标签: nhibernate join mapping

本质上我试图用NHibernate做以下事情(试图让它变得可以理解):

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

我希望p.*当然是ParentObjectChildObject类型的属性。

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

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

这可能吗?

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

我会在session.Get<ParentClass>(idLangIndexObject)方法中执行正常的NullSafeGet,还是会对IUserType内部的任何内容产生影响?

我尝试在ApplyFilter()上执行ParentClassMapping(尝试仅减少一种语言),但References()似乎在内部使用了Get,而忽略{{1} }

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

必须有某种方式,毕竟这不是火箭科学。

1 个答案:

答案 0 :(得分:0)

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