Платформа сущностей загружает сущность в контейнер сущностей, и контейнер имеет набор сущностей, который содержит локальную копию сущности, которая была извлечена из базы данных.У каждой сущности есть ссылка на соответствующий ей набор сущностей, и весь набор сущностей останется в памяти, а набор сущностей будет расти, пока вы будете загружать его из базы данных.
Вы должны разделить свою таблицу на две части, используя отношение один к одному с таблицей, содержащей первичный ключ и другие атрибуты, и другую таблицу, содержащую только первичный ключ и большой двоичный объект.
Далее в цикле for, пока вы выполняете итерацию, вы должны загрузить объект BLOB-объекта через новый контекст, обработать ваш байтовый массив и уничтожить ваш контекст в конце цикла for.Или вы также можете отсоединить объект от контейнера сущностей, что сделает его свободным для сборки мусора.
В существующем коде вы можете отсоединить вашу сущность, которая освободит память, которую она хранит.
MyEntities bh = new MyEntities ();
foreach (var s in bh.TaskGraphs)
{
try
{
using (var x = new MemoryStream(s.TaskGraph1))
{
//var t = TaskGraph.Load(x);
//Validate(t);
bn.Detach(t);
}
}
catch (Exception e)
{
}
}