Получение RowCount для IQueryable не IQueryable <T> - PullRequest
0 голосов
/ 09 ноября 2018

Короче говоря, у нас есть C # WebApi, который предоставляет сопоставленные экземпляры из нашего DAL в DTOS.

Каждый контроллер выставляет IEnumerable<T> Get()

У меня есть тест, который находит все контроллеры, и вызываю этот метод get.

Это удаляет все ошибки сопоставления, которые возникают только при выполнении.

Некоторое время назад я заметил, что для уверенности, что вам действительно нужно выполнить перечисление, иначе сопоставление никогда не произойдет.

Итак, у меня есть этот код

if (results is IEnumerable enumerable)
{
    var counter = enumerable.Cast<object>().Count();
    Trace.Write($"{counter} results found.");
}

Это выполняет приведение (которое вызывает сопоставление) и дает мне счет по причинам вывода.

Это работало до тех пор, пока результирующий набор не стал массовым - это просто время ожидания.

Большинство моих IEnumerables на самом деле IQueryable под

Мне нужен способ Take(10) на IQueryable, который может работать с отраженными данными / исполняемыми типами. Это позволит отображению работать, но на меньшем наборе данных.

Помощь!

...