具有多个实体的Linq-to-nHibernate查询?

时间:2009-07-31 13:34:29

标签: nhibernate linq-to-nhibernate

Linq-to-NHibernate是否支持在单个查询中从多个实体检索数据?

e.g:

Dim query = From f In context.Session.Linq(Of Floor)() _
            Select f.Id, f.Name, f.Building.Id, f.Building.Name

Dim results = query.ToList()

其中BuildingFloor的父实体。

3 个答案:

答案 0 :(得分:2)

您需要在session.Linq上使用Expand方法。例如(抱歉,在c#中),

var linq = session.Linq<Floor>();
linq.Expand("Building");  //causes "Building" to be eagerly loaded.
//Then your linq query goes here...

答案 1 :(得分:1)

应该可以,因为NHibernate原生支持这个。但我没有使用Linq-to-NHibernate的经验。

您是否尝试过查询,如果是,那么响应是什么?

答案 2 :(得分:1)

我一直在玩Expand。关于存储库模式的有趣观点。

但是,在@ Simon的例子中,立即打击我的是魔法字符串“Building”的味道。我最终看到了来自Marcin Budny的博客文章。

http://marcinbudny.blogspot.com/2009/10/typed-expand-for-linq-to-nhiberante.html

适合我。