为什么在通过方法时跳过和拍摄不起作用?
-
08-10-2019 - |
题
假设以下代码:
IEnumerable<MyClass> MakeQuery()
{
var query = from m in session.Linq<MyClass>()
select m;
return query;
}
List<MyClass> m1()
{
return MakeQuery()
.Skip(10)
.Take(20)
.ToList<MyClass>();
}
List<MyClass> m2()
{
var query = from m in session.Linq<MyClass>()
select m;
return query
.Skip(10)
.Take(20)
.ToList<MyClass>();
}
假设所有查询都是相同的,似乎在 m1()
, Skip
和 Take
不起作用。的确,就像它们并不存在一样。
为什么会发生这种情况以及如何修复?
我正在使用linq-to-nhibrenate,此方法用于分页。谢谢。
解决方案
为什么不将iQueryable用于manvquery()方法?
IQueryable<MyClass> MakeQuery()
{
return session.Linq<MyClass>();
}
并不是说实际查询很有意义。但是我会把它留给你。
但这也是M1()和M2()之间的唯一区别
不隶属于 StackOverflow