質問

ドキュメントのメタデータをテーブルに保存するために使用しているオブジェクトがあります。ドキュメントの本文は非常に大きくなる場合があり、場合によっては> 2 GBなので、SQL 2008のnvarchar(max)フィールドに格納します。後でSQL 2008を使用して、そのフィールドにインデックスを付けます。ファイルストリームはデータベースに非常に制限されており、特定の種類の同時ロックスキームを妨げるため、ファイルストリームは使用しません。

このオブジェクトは、LinqToSQLを介して開発者に公開されます。私の懸念は、フィールドが大きくなり、テキストが>の場合、OutOfMemory例外で.Net爆弾が見られることです。 1.5 GB。

だから、このblobをLinqのストリームとして扱うことはできますか?または、ブロブを使用する場合、Linqを完全にバイパスする必要がありますか?

役に立ちましたか?

解決

"の回答をご覧くださいquery retrieve BLOBs [...]" 運が悪かった疑わしい System.Data.Linq.Binary typeにはストリーミングのメカニズムがありません-基本的には不変のバイト配列表現です。

呼び出すことができる深いLINQモジョがあるかもしれませんが、実際にはかなり深くする必要があると思います。

Entity Frameworkがそれを処理する可能性があります-私はそれを調査していません。

他のヒント

私は、SQLのvarchar(max)オブジェクトで利用可能な書き込みメソッドを利用して、linq to Sqlを中心に独自のメソッドを記述しました。これにより、開発者は大規模なデータ型のDBに挿入をチャンクできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top