0

假设以下代码:

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>();
}

假设所有查询都相同,似乎 inm1()和不起作用。事实上,它们并不存在。SkipTake

为什么会发生这种情况以及如何解决?

我正在使用 linq-to-nhibernate,这种方法用于分页。谢谢。

4

1 回答 1

2

为什么不对 MakeQuery() 方法使用 IQueryable?

IQueryable<MyClass> MakeQuery()
{
  return session.Linq<MyClass>();
}

并不是说实际的查询很有意义。但我会把它留给你。

但这也是 m1() 和 m2() 之间的唯一区别

于 2010-10-16T18:39:37.167 回答