Сохраните файл в базе данных SQL Server 2008 с Entity Framework - PullRequest
3 голосов
/ 20 марта 2011

Как сохранить файл в базе данных SQL Server 2008 с помощью Entity Framework?

Я хочу использовать FileStream в SQL Server 2008.

Ответы [ 2 ]

7 голосов
/ 20 марта 2011

Я не понимаю, почему это не сработает - filestream столбцы просто отображаются как varbinary(MAX), поэтому вы можете установить столбец с помощью Entity Framework:

Образец от здесь :

Files newFile = new Files();
newFile.FileID = Guid.NewGuid();
newFile.FileContents = System.IO.File.ReadAllBytes("TextFile1.txt");
ctx.AddObject("Files", newFile);
ctx.SaveChanges();
5 голосов
/ 20 марта 2011

Платформа Entity не поддерживает такие специфические функции SQL-сервера, как файловый поток. Вы не можете сделать это с EF, вы должны вернуться к ADO.NET.

Edit:

Отмена удаления моего ответа, потому что я только что проверил, как EF обрабатывает FILESTREAM столбцы. EF действительно работает со столбцом FILESTREAM, поэтому мой ответ не полностью правильный, и @BrokenGlass предоставил решение. Проблема в том, что EF игнорирует ключевое слово FILESTREAM и не использует потоковую передачу при работе со столбцом FILESTREAM. Этот столбец обрабатывается как любой другой двоичный столбец.

...