2011-01-03 3 views
1

Ich habe Probleme beim Schreiben großer Blobs in eine MySQL-Datenbank mit dem. Net-Entity-Framework. Blobs < 1 MB funktionieren gut. Wenn ich versuche, einen Blob> 1MB zu schreiben, wird eine InvalidOperationException mit dem Text "Verbindung muss geöffnet sein" angezeigt. tritt ein.Schreiben Larg BLOB wirft InvalidOperationException

Ich verwende:

  1. Visual Studio 2010
  2. .Net 3.5
  3. Devart ADO.NET Entity Framework (neuesten)
  4. MySSQl (letzte)

Hilfe ist geschätzt.

+1

Werfen Sie einen Blick auf die Einstellung von max_allowed_packet in mysql: http://dev.mysql.com/ doc/refman/5.5/de/packet-too-large.html –

Antwort

1

Mysql Standard-Paketgröße ist 1 MB Dies bedeutet, dass die Daten der Abfrage des Ergebnisses passen sollte. Wenn Sie versuchen, mehrere Zeilen mit Informationen zu speichern, und wenn dies mehr als 1 MB ist, werden die Zeilen bei der Übertragung aufgeteilt. Aber im Falle eines großen Blobs können Sie entweder Ihre Netzwerkpaketgröße erhöhen oder Ihre Informationen in kleineren Reihen speichern, wie in diesem Blog gezeigt. http://akashkava.com/blog/127/huge-file-storage-in-database-instead-of-file-system/

+0

Das Erhöhen des Wertes des MySQL-Parameters max_allow_packet hat die Aufgaben erledigt. – shepard1

+1

Ja, aber das kann zu mehr Problemen bei der Zuweisung von größerem Puffer und mehr Speicherverbrauch führen, was bei Anwendungen mit hoher Leistung Auswirkungen hat. –

+0

@ shepard1 Bitte akzeptieren Sie die Antwort, wenn es für Sie funktioniert. –