Pergunta

Eu tenho um objeto que estou usando para metadados armazenamento de documentos em uma tabela. O corpo do texto do documento pode ser muito grande, às vezes> 2 GB por isso vou estar armazenando-o em um campo nvarchar (max) no SQL 2008. Vou usar SQL Server 2008 depois de indexar esse campo. Eu não vou estar usando FileStreams porque eles são muito restritivas para os bancos de dados e impede que certos tipos de sistemas de bloqueio de simultaneidade.

Este objeto é exposto ao desenvolvedor via LinqToSQL. Minha preocupação é que o campo será grande e eu vi .Net bombardear com uma exceção OutOfMemory se o texto for> 1,5 GB.

Então, eu estou querendo saber, eu posso tratar este blob como um fluxo com Linq? Ou eu tenho que ignorar Linq completamente se eu quiser usar uma bolha?

Foi útil?

Solução

Dada a resposta para "Pode uma consulta LINQ recuperar BLOBs [...] " I suspeito que você está sem sorte. A System.Data.Linq.Binary tipo não tem qualquer mecanismo para streaming -., basicamente, é apenas uma representação matriz de bytes imutável

Pode haver alguma LINQ profunda mojo você poderia chamar, mas eu suspeito que realmente tem que ser muito profunda.

É possível que o Entity Framework seria lidar com isso -. Eu não investigaram que

Outras dicas

Acabei escrevendo meu próprio método torno LINQ to SQL utilizando o método de gravação disponível para varchar (max) objetos em SQL. Isso permite que os desenvolvedores para inserções do pedaço para o DB para grandes tipos de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top