Тип данных для хранения документа в SQL Server 2008 через Entity Framework
==========================================================================

 Я пытаюсь сохранить документ в SQL Server 2008, используя Entity Framework. 

 Я верю, что у меня есть код для этого. Проблема, с которой я сейчас сталкиваюсь, заключается в том, какой тип данных использовать в SQL Server и в моей модели сущностей. 

 «Изображение» было моим первым выбором, но это вызывает ошибку «Недопустимое отображение» при обновлении модели. Я вижу, что не существует эквивалента «Image» (в раскрывающемся списке «Тип» в свойствах объекта). 

 Затем я попробовал «varbinary (MAX)» и увидел, что это соответствует «двоичному» в модели сущностей. Однако, когда я запускаю код, он говорит мне, что данные будут усечены, поэтому он остановился. После исследования я вижу, что тип данных SQL Server «двоичный» имеет длину 8000 байт, поэтому я выбрал «varbinary (MAX)», поэтому модель сущностей, по-видимому, сводит / отображает «varbinary (MAX)» в «двоичный» , 

 Это правильно? 

 Если да, какими должны быть мои типы данных (как в SQL Server 2008, так *и* в моей модели сущностей), пожалуйста? Какие-либо предложения? 

 Измените тип данных вашей модели на byte [], и все будет хорошо, чувак, если вам нужно больше объяснений, пожалуйста, оставьте комментарий. 

 РЕДАКТИРОВАТЬ: 

 Чувак, я пробовал это раньше в Linq to Sql, и на этот раз я попробовал это в EF, в концептуальной модели вашего файла, а именно Foo.edmx, ваш тип - Binary (вы можете открыть его через контекстное меню Visual Studio, открыв его, а затем выбрав Редактор XML или любой другой текстовый редактор (например, блокнот), но в сгенерированном файле с именем Foo.designer.cs ваш тип данных - Byte []. 

 И нет предела, который вы упомянули выше. Я попробовал его с 10000 байтами, и он успешно вставлен без усечения моего массива. О тестировании производительности при сохранении документов в базе данных или файловой системе я прочитал статью, в которой говорилось, что в Sql Server 7 файловая система имеет более высокую производительность при извлечении хранимых данных, но в более поздних версиях Sql Server она берет на себя скорость файловой системы и предложил сохранить документы на сервере Sql. 

 ИМХО при сохранении документов, если они не слишком велики, я предпочитаю хранить их в БД (насколько я знаю, у БД NoSql есть отличная производительность), 

 Первое: целостность моих данных, 

 Второе: повышение производительности, которое вы можете иметь (например, если в вашей папке большое количество файлов, чтение и запись файлов в этой папке постепенно замедляется все больше и больше, если вы не организуете их в более чем одну папку и предпочтительно в древовидную структуру, например папки), 

 Третье: политики безопасности, которые вы можете применять к ним через свое приложение более легко (хотя вы можете сделать это на подходе файловой системы, но я думаю, что здесь проще) 

 В-четвертых: вы можете воспользоваться возможностями, предоставляемыми вашей СУБД для запросов и манипулирования и ... этими файлами 

 и многое другое ... :-)