【发布时间】: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.* 作为ChildObject 中ParentObject 类型的属性。
ChildTable 没有语言列。所以 :language 被视为程序中的一个常量。
我正在考虑创建一个从 c.ParentId 转换为 ParentObject 并再次返回的 UserType(转换取决于:语言)。
这可能吗?
我已经为别的东西做了一个简单的 IntToString IUserType。
然后我会在NullSafeGet 方法中执行一个普通的session.Get<ParentClass>(idLangIndexObject),还是会影响IUserType 的任何内部结构?
我也试过在ParentClassMapping 上做ApplyFilter()(试图只减少一种:语言),但References() 似乎在内部使用Get,而Get 忽略ApplyFilter()
还有其他更优雅的想法吗?
一定有办法,毕竟这不是火箭科学。
【问题讨论】:
标签: nhibernate join mapping