2011-01-03 3 views
1

У меня возникли проблемы с записью больших блоков в MySQL-базу данных с использованием .net-сущности-рамки. Blobs < 1MB работа хорошо. Если я попытаюсь написать blob> 1MB a InvalidOperationException с текстом «Connection должно быть открыто». имеет место.Запись больших BLOB-запросов InvalidOperationException

Я использую:

  1. Visual Studio 2010
  2. .Net 3.5
  3. Devart ADO.NET Entity Framework (последний)
  4. MySSQl (последняя)

справка оценили.

+1

Посмотрите на параметр max_allowed_packet в mysql: http://dev.mysql.com/ doc/refman/5.5/en/packet-too-large.html –

ответ

1

Размер пакета по умолчанию Mysql равен 1 МБ, это означает, что данные результата вашего запроса должны в него вписываться. Если вы пытаетесь сохранить несколько строк информации, и если это более 1 МБ, строки разделяются на передачу. Но в случае большой blob вы можете либо увеличить размер вашего сетевого пакета, либо сохранить свою информацию в меньших нескольких строках, как показано в этом блоге. http://akashkava.com/blog/127/huge-file-storage-in-database-instead-of-file-system/

+0

Увеличение значения MySQL-параметра max_allow_packet действительно выполняло задания. – shepard1

+1

Да, но это может вызвать больше проблем при распределении большего буфера и увеличении объема памяти, поэтому применение высокопроизводительных приложений оказывает влияние. –

+0

@ shepard1 Пожалуйста, примите ответ, если он сработает для вас. –

 Смежные вопросы

  • Нет связанных вопросов^_^