Есть ли предел для строк, которые IEnumerable.Count () (или IQueryable.Count ()) использует LINQ to SQL? По какой-то причине, если мой запрос возвращает более 200 записей, я получаю только 200 из IEnumerable.Count (). Я даже пытался использовать IEnumerable.LongCount () (хотя количество результатов не должно быть достаточно большим, чтобы это понадобилось). Я также подтвердил, что вызов COUNT для базы данных возвращает более 200 записей.
Я проверил MSDN и попытался найти его, но безрезультатно.
Я схожу с ума, или я чего-то упускаю? Я полагаю, это не имеет большого значения (поскольку программа вставляет нужное количество записей), но было бы неплохо иметь возможность регистрировать количество переданных записей.
Можем ли мы увидеть пример кода?
public IEnumerable<Irms_tx_modify_profile_ban> ExtractNewAdmits()
{
var results = from a in _dc.Applications
select (Irms_tx_modify_profile_ban)new RMSProfile
{
//assign column names to property names
};
//Don't know why, but Bad Things happen if you don't put the
//OfType call here.
IEnumerable<Irms_tx_modify_profile_ban> narrowed_results = results.OfType<Irms_tx_modify_profile_ban>();
Program.log.InfoFormat("Read {0} records from Banner.", narrowed_results.Count());
return narrowed_results;
}
Причиной комментариев о происходящих плохих вещах являются проблемы, поднятые в этой теме . Что я только что узнал, так это то, что если я вызываю Count для функции smalled_results (IEnumerable), он возвращает правильную сумму. Если я назову его результатами (IQueryable), он вернет только 200. Я пойду дальше и решу ответ Скита (поскольку он упомянул разницу между IQueryable и IEnumerable), но если кто-нибудь сможет объяснить, почему это происходит, я ' Я хотел бы услышать это.