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

すべてのクエリが同じであるとすると、のように見え、m1()は機能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 に答える