Зачем пропустить и принимать не работать при прохождении через метод?
-
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-nibernate, и эти методы используются для пейджинга. Спасибо.
Решение
Почему бы не использовать IQUERYable для метода MadeQuery ()?
IQueryable<MyClass> MakeQuery()
{
return session.Linq<MyClass>();
}
Не то, что фактический запрос имеет большой смысл. Но я оставлю это тебе.
Но это также единственная разница между M1 () и M2 ()
Не связан с StackOverflow