Frage

Ich habe ein Objekt, das ich zu dokumentieren Meta-Daten in eine Tabelle zu speichern, verwenden. Der Haupttext des Dokuments kann sehr groß sein, manchmal> 2GB, so werde ich es in einen nvarchar (max) Feld in SQL 2008 wurde die Speicherung ich SQL 2008 später zu indizieren, dass Feld verwenden werden. Ich werde mit Filestreams nicht, weil sie sehr restriktiv auf die Datenbank und verhindert, dass bestimmte Arten von Gleichzeitigkeit Verriegelungssystemen.

Diese Aufgabe wird in den Entwickler über LinqToSQL ausgesetzt. Meine Sorge ist, dass das Feld zu groß sein wird, und ich habe .Net ausbomben mit einer OutOfMemory Ausnahme gesehen, wenn der Text> 1,5 GB.

Also ich frage mich, kann ich diesen Blob als Stream mit Linq behandeln? Oder muss ich Linq ganz umgehen, wenn ich einen Klecks verwenden?

War es hilfreich?

Lösung

Die Antwort auf "Kann eine LINQ-Abfrage abrufen BLOBs [...] " I verdächtigen du bist kein Glück. Die System.Data.Linq.Binary Typ keinen Mechanismus für die Streaming -. Im Grunde ist es nur eine unveränderliche Byte-Array-Darstellung

Es kann einige tiefe LINQ mojo sein, das Sie aufrufen können, aber ich vermute, es wäre wirklich ziemlich tief sein müssen.

Es ist möglich, dass das Entity Framework damit umgehen würde - ich habe das nicht untersucht

.

Andere Tipps

ich am Ende meine eigene Methode um Linq zu Sql Schreiben der Schreibmethode varchar (max) verfügbar Nutzung Objekte in SQL. Dies ermöglicht es Entwicklern, chunk fügt in die DB für große Datentypen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top