Подтвердить что ты не робот

EF4 Сопоставление varbinary (max) с двоичным кодом - первая ошибка кода

У меня есть класс POCO под названием Attachment, который сопоставляется с таблицей в SqlServer с полем VarBinary (max). Поле содержит файлы.

Класс POCO выглядит следующим образом

public class Attachment
{
    public string AttachmentId { get; set; }
    public string AttachmentTypeId { get; set; }
    public string Title { get; set; }
    public string Text { get; set; }
    public Binary Data { get; set; }
}

Отображение выглядит следующим образом:

modelBuilder.Entity<Attachment>().Property(a => a.Data).HasColumnName("col_data");

Однако отображение вызывает ошибку

The type 'System.Date.Linq.Binary' must be a non-nullable value type in order to use it as a parameter 'T'

Отображение работает отлично, если я использую массив байтов, но это, похоже, искажает данные на пути.

Файл в базе данных имеет начальную двоичную строку, например: -

0x504B0304140008000800027923400000000000000000000000001F000000

Я думаю, что это файл в формате JPG. Любая помощь в получении файла из БД в одном фрагменте будет оценена.

4b9b3361

Ответ 1

Binary Тип данных предназначен только для Linq-to-Sql. EF не может работать с ним. Правильный тип данных для EF - это массив байтов (byte[]).