2016-07-26 6 views
4

После выполнения take(n) метод linq на IQueriable данные (начальный счет m), метод Count() все еще возвращает m значение.«Count()» после «Take()» на «IQueryable» возвращает неправильный результат?

Выполняется ToList() команда является единственным вариантом, чтобы получить фактическое количество от IQueryable?

var data = service.Get();//100 records 
var data2 = data.Take(10); 

var count = data2.count(); //result 100 - wrong 
var count2 = data2.ToList().Count; // result 10 - correct 
+2

Можете ли вы показать код? – Shyju

+0

@Shyju обновлен. –

+0

Итак, где ваш код? –

ответ

4

Вы должны использовать ToList() для этого случая, или найти альтернативное решение, или довершение результат Count() самостоятельно (так как правильное значение не может быть больше, чем значение, указанное в Take()) ,

Известная ошибка в NHibernate: https://nhibernate.jira.com/browse/NH-2477