1

本质上,我正在尝试使用 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()

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

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

4

1 回答 1

0

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

于 2012-12-23T23:23:46.047 回答