如果我这样做
Session.Linq<MyClass>().Where(x => x.Id = someId).FirstOrDefault();
其中MyClass
上有一组预先加载的子对象,FirstOrDefault()
似乎通过向SQL添加TOP 1
来阻止此操作。
这只是Linq2NH中的一个错误(功能?)(据我所知正在重写)或者我错过了什么?
是否有一个可行的首选方案?
由于
答案 0 :(得分:3)
看起来像一个bug,在我看来,FirstOrDefault是一个非常明确的Linq运算符,它与eager / lazy加载无关,所以它不应该破坏它。
我想有很多这样的细微差别,导致图书馆没有准备就绪。我建议提交开发者的错误。
在这种情况下,回归DetachedCriteria(或HQL)是我认为的唯一选择。