本质上,我正在尝试使用 NHibernate 执行以下操作(试图使其易于理解):
SELECT p.*
FROM ChildTable c
INNER JOIN ParentTable p ON p.Id = c.ParentId AND p.Language = :language
我当然希望p.*
作为ParentObject
.ChildObject
ChildTable 没有 Language 列。因此 :language 被视为程序中的常量。
我正在考虑创建一个从 c.ParentId 转换为 ParentObject 并再次返回的 UserType(转换取决于:语言)。
那可能吗?
我已经为别的东西做了一个简单的 IntToString IUserType。
session.Get<ParentClass>(idLangIndexObject)
那么我会在该方法中做一个正常的操作,NullSafeGet
还是会对任何IUserType
内部结构产生影响?
我也尝试过这样做ApplyFilter()
(ParentClassMapping
试图只减少一种:语言),但References()
似乎在内部使用 Get,而 Get 忽略ApplyFilter()
还有其他更优雅的想法吗?
一定有办法,毕竟这不是火箭科学。