Evitando el LOH al leer un binario

Esta pregunta es un seguimiento deManera eficiente de transferir muchos archivos binarios a la base de datos de SQL Server

Originalmente pregunté por qué usarFile.ReadAllBytes causaba un uso rápido de la memoria y se llegó a la conclusión de que con ese método se colocaron los datos en el montón de objetos grandes que no se pueden recuperar fácilmente durante el tiempo de ejecución.

Mi pregunta ahora es ¿cómo evitar esa situación?

using (var fs = new FileStream(path, FileMode.Open))
{
    using (var ms = new MemoryStream())
    {
        byte[] buffer = new byte[2048];
        int bytesRead;
        while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
        {
            ms.Write(buffer, 0, bytesRead);
        }
        return new CustomFile { FileValue = ms.ToArray() };
   }
}

El siguiente código fue pensado para solucionar el problema leyendo un archivo en trozos en lugar de todos a la vez, pero parece tener el mismo problema.

Respuestas a la pregunta(1)

Su respuesta a la pregunta