Я работаю с очень большим набором данных, примерно 2 миллиона записей. У меня есть код ниже, но получаю исключение из памяти после того, как он имеет процесс около трех партий, около 600 000 записей. Я понимаю, что, поскольку он проходит через каждую пакетную сущность фрейма, ленивые нагрузки, которые затем пытаются собрать полные 2 миллиона записей в память. Есть ли способ выгрузить пакет, который я обработал?
ModelContext dbContext = new ModelContext();
IEnumerable<IEnumerable<Town>> towns = dbContext.Towns.OrderBy(t => t.TownID).Batch(200000);
foreach (var batch in towns)
{
SearchClient.Instance.IndexMany(batch, SearchClient.Instance.Settings.DefaultIndex, "Town", new SimpleBulkParameters() { Refresh = false });
}
Примечание. Пакетный метод исходит из этого проекта: https://code.google.com/p/morelinq/
Поисковый клиент: https://github.com/Mpdreamz/NEST