本质上我试图用NHibernate做以下事情(试图让它变得可以理解):
SELECT p.*
FROM ChildTable c
INNER JOIN ParentTable p ON p.Id = c.ParentId AND p.Language = :language
我希望p.*
当然是ParentObject
中ChildObject
类型的属性。
ChildTable没有语言列。所以:语言被视为程序中的常量。
我正在考虑创建一个从c.ParentId转换为ParentObject并再次返回的UserType(转换依赖于:language)。
这可能吗?
我已经为其他东西做了一个简单的IntToString IUserType。
我会在session.Get<ParentClass>(idLangIndexObject)
方法中执行正常的NullSafeGet
,还是会对IUserType
内部的任何内容产生影响?
我尝试在ApplyFilter()
上执行ParentClassMapping
(尝试仅减少一种语言),但References()
似乎在内部使用了Get,而忽略{{1} }
还有其他更优雅的想法吗?
必须有某种方式,毕竟这不是火箭科学。
答案 0 :(得分:0)
你所拥有的是从孩子到父母(不是多对一)的一对多或多对多的关系,因为每个孩子显然可以有多个父母。将其映射为集合以正确反映此情况,集合负载将考虑过滤器。