OutOfMemory no tiene nada que ver con ningún marco o base de datos. Significa que CLR no pudo asignar un objeto cuando se le solicitó.
Probablemente, tiene los datos en varios búferes como uno en un HttpPostedFile , uno en un byte[] en memoria , uno en EF, ... Esto multiplica la cantidad de memoria necesaria.
Cambie a la transmisión de lecturas desde ASP.NET y la transmisión de escrituras a ADO.NET. Los tutoriales están disponibles. Busque "SQL Server UPDATE WRITE"