2012-12-21 78 views
1

从本质上说,我试图做与NHibernate以下(要把它理解):NHibernate的:映射参考

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

而且我当然要p.*作为ChildObject一个ParentObject类型的财产。

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

我正在考虑创建一个从c.ParentId转换到ParentObject并返回(取决于:语言)的UserType的UserType。

这可能吗?

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

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

我试图在ParentClassMapping太(试图砍下只有一个:语言)做ApplyFilter(),但References()使用内部得到它似乎和获取忽略ApplyFilter()

任何其他的更优雅的想法?

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

回答

0

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