Я использовал linq для sql для хранения файлов в поле varbinary(max)
. Filestream активируется тоже, но когда я пытаюсь хранить файлы с 400 или 500 МБ, я получаю эту ошибку:Проблема с хранением больших файлов в базе данных
Exception of type 'System.OutOfMemoryException' was thrown
Мой код:
Dim ByteArray() As Byte = File.ReadAllBytes(OpenFileDialog1.FileName)
Dim tb As New tb_1()
tb._id = System.Guid.NewGuid()
tb._Blob = New System.Data.Linq.Binary(ByteArray)
tb._text = Date.Now
db.tb_1s.InsertOnSubmit(tb)
Dim tb2 As New tb_2
tb2._id = System.Guid.NewGuid
tb2._Master = tb._id
tb2._text = 2
db.tb_2s.InsertOnSubmit(tb2)
db.SubmitChanges()
Что может быть причина, почему я получаю это исключение и как я могу избежать этого?
Где вы принимаете ошибку? Когда вы читаете в ByteArray или когда вы выполняете SubmitChanges? У меня была аналогичная проблема с чтением больших файлов, и я переключился на другой метод, чтобы читать байты и записывать их в файл, чтобы одновременно не иметь весь файл в памяти. Не знаете, как это сделать с необходимостью вставлять в БД, в моем случае я просто читал и писал файл. – Jay
в этой строке: tb._Blob = New System.Data.Linq.Binary (ByteArray) У меня ошибка. –