FirstOrDefault()将Linq的FetchType = join分解为NHibernate

时间:2009-05-18 22:06:17

标签: nhibernate linq-to-nhibernate

如果我这样做

Session.Linq<MyClass>().Where(x => x.Id = someId).FirstOrDefault();

其中MyClass上有一组预先加载的子对象,FirstOrDefault()似乎通过向SQL添加TOP 1来阻止此操作。

这只是Linq2NH中的一个错误(功能?)(据我所知正在重写)或者我错过了什么?

是否有一个可行的首选方案?

由于

1 个答案:

答案 0 :(得分:3)

看起来像一个bug,在我看来,FirstOrDefault是一个非常明确的Linq运算符,它与eager / lazy加载无关,所以它不应该破坏它。

我想有很多这样的细微差别,导致图书馆没有准备就绪。我建议提交开发者的错误。

在这种情况下,回归DetachedCriteria(或HQL)是我认为的唯一选择。