4

我有一个用于将文档元数据存储到表中的对象。文档的正文可能非常大,有时 > 2GB,因此我会将其存储到 SQL 2008 中的 nvarchar(max) 字段中。稍后我将使用 SQL 2008 来索引该字段。我不会使用文件流,因为它们对数据库非常严格,并且会阻止某些类型的并发锁定方案。

该对象通过 LinqToSQL 公开给开发人员。我担心该字段会太大,如果文本> 1.5 GB,我已经看到.Net 爆炸并出现OutOfMemory 异常。

所以我想知道,我可以将这个 blob 视为带有 Linq 的流吗?或者如果我想使用 blob,我是否必须完全绕过 Linq?

4

2 回答 2

2

鉴于“LINQ 查询可以检索 BLOB [...]”的答案,我怀疑您不走运。System.Data.Linq.Binary类型没有任何流式传输机制——基本上它只是一个不可变的字节数组表示。

您可能会调用一些深层的 LINQ mojo,但我怀疑它确实必须非常深。

实体框架可能会处理它 - 我还没有调查过。

于 2008-11-14T08:43:35.320 回答
1

我最终围绕 linqtoSql 编写了自己的方法,使用 SQL 中的 varchar(max) 对象可用的 write 方法。这允许开发人员将大数据类型的插入分块到数据库中。

于 2008-12-08T03:03:36.650 回答