(N)休眠自动加入

时间:2008-08-23 18:31:02

标签: sql nhibernate orm

我正在使用NHibernate开发一个Web应用程序。你能告诉我如何为以下SQL查询编写NHibernate查询:

SELECT v1.Id
FROM VIEW v1
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id
ORDER BY v1.Position

它基本上是一个自动连接,但我不知道如何在Nhibernate中编写它。可以说,属性名称与表列名称相同。

1 个答案:

答案 0 :(得分:1)

您可以只对原始实体执行选择,并使两个对象之间的关联“lazy = false”。只要实体被映射,那么两者都将被返回,并且在尝试访问对象时不会得到lazyloadingexception。

如果您不想映射“lazy = false”,那么您也可以迭代结果并执行某种操作(例如询问它是否为null; if(v1.AssocatedObject == null){} )确保在会话打开时加载数据。

更新

我认为实际上有一个比NHibernateUtil.Initialise()更好的一个,它可以初始化一个集合而不必漫游它。