Еще один вопрос относительно EF:
Мне было интересно, что происходит за кулисами при переборе результатов запроса.
Например, проверьте следующий код:
var activeSources = from e in entitiesContext.Sources
where e.IsActive
select e;
и затем:
foreach (Source currSource in allSources)
{
code based on the current source...
}
Важное примечание : Каждая итерация занимает некоторое время (от 1 до 25 секунд).
Теперь я предполагаю, что EF основан на DataReaders для максимальной эффективности, поэтому, исходя из этого предположения, я полагаю, что в приведенном выше случае соединение с базой данных будет оставаться открытым, пока я не закончу перебирать результаты, что будет очень долгое время (если говорить в терминах кода), чего я явно не хочу.
Есть ли способ извлечь все данные, как если бы я использовал обычные старые ADO.NET DataAdapters, DataSets и метод fill () вместо использования DataReaders?
Или, может быть, я не прав в своих предположениях?
В любом случае мне бы очень хотелось, чтобы меня указывали на хороший источник, объясняющий это, если таковой имеется.
Спасибо
Mikey