Если мы просто сосредоточимся на памяти данных: среда выполнения не возвращает память обратно ОС, если нет веской причины; если вы только что использовали {некоторое количество памяти}, есть очень хороший шанс, что вы будете использовать это снова через мгновение, и это будет намного более эффективным, чтобы держать его для какое-то время. GC.Collect
имеет дело только с внутренним бухгалтерским учетом, так что в ближайшее время ему не нужно запрашивать больше памяти из ОС. Есть вещи, которые вы можете сделать, чтобы сделать среду выполнения более агрессивной при возврате памяти, но ... 37Mb - это, по сути, ничто.
Кроме того, все равно требуется память для внутренних. NET бит (введите метаданные, все загруженные вами сборки, JIT, IL, et c). Выполнение чего-либо, чего-либо с EF (или любой другой библиотекой) приведет к увеличению ie некоторой памяти в процессе, который не будет освобожден . И поскольку вы общались с базой данных, возможно, теперь существует пул соединений (управляемый и неуправляемый) и некоторые SQL связанные потоки.