Pregunta

Tengo un objeto que estoy usando para almacenar metadatos de documentos en una tabla. El texto del cuerpo del documento puede ser muy grande, a veces > 2GB, así que lo almacenaré en un campo nvarchar (max) en SQL 2008. Usaré SQL 2008 más tarde para indexar ese campo. No usaré archivos de flujo porque son muy restrictivos para la base de datos y evitan ciertos tipos de esquemas de bloqueo de concurrencia.

Este objeto está expuesto al desarrollador a través de LinqToSQL. Mi preocupación es que el campo será demasiado grande y he visto que .Net bombardea con una excepción OutOfMemory si el texto es > 1,5 GB.

Entonces, me pregunto, ¿puedo tratar este blob como una secuencia con Linq? ¿O tengo que omitir Linq por completo si quiero usar un blob?

¿Fue útil?

Solución

Dada la respuesta a " Can a LINQ consulta recuperar BLOBs [...] " Supongo que sospecho que no tienes suerte. El System.Data.Linq.Binary type no tiene ningún mecanismo para la transmisión, básicamente es solo una representación de matriz de bytes inmutable.

Puede haber algún mojo de LINQ profundo que podrías invocar, pero sospecho que realmente tendría que ser bastante profundo.

Es posible que Entity Framework lo maneje, no lo he investigado.

Otros consejos

Terminé escribiendo mi propio método alrededor de linq a Sql utilizando el método de escritura disponible para los objetos varchar (max) en SQL. Esto permite a los desarrolladores insertar fragmentos en la base de datos para tipos de datos grandes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top