nhibernate linq:投影到DTO和列

时间:2010-11-15 16:22:03

标签: nhibernate linq-to-nhibernate

我最近将我的Linq提供程序升级到新的AST。 (NuGet上的NH3)

使用之前的提供程序,我使用linq进行“内联投影” 到我的DTO“ 例如

from o in Session.Query<MyObject>() 
select new MyObjectDTO { 
Name = o.Name, 
SubName = o.OtherObject.Name, 
Sub2NAme = o.OtherObject2.Name 
} 

这会产生一个

SELECT o.Name, sn1.Name, sn2.Name FROM ..... 
JOIN.... JOIN....

语句。

一旦我升级了我的提供程序,我发现了很多select语句 被解雇了。 (我的预测对象比上面的更复杂)。 我来到了Fetch / FetchMany,这可能有助于这个数字 查询,但据我所知,这意味着完整的对象将 为我需要的每个平坦的场地回来。

有没有办法可以获得投影选择所需的最小列数,而不是将完整的对象图加载到项目中?

谢谢, 克里斯

1 个答案:

答案 0 :(得分:1)

它必须与您对结果的使用有关(比如迭代IQueryable很多次),映射有些奇怪,或者从示例中删除了一些复杂性。

我刚刚尝试了那个确切的查询,并且只生成了一个SQL语句。