Сохранение файла в SQL CE 4 с использованием подхода Entity Framework Code-First - PullRequest
7 голосов
/ 12 июля 2011

Я пытаюсь добавить сущность в SQL CE 4 со свойством типа byte []. Из MSDN я выяснил, что только файлы изображений могут содержать большие файлы (в моем случае они не такие большие, но все же превышают ограничение двоичного типа 8000 байт). Вот модель:

public class TabModel
{
    [Key]
    public Guid Id { get; set; }

    public string Title { get; set; }
    public string Subtitle { get; set; }
    public string Artist { get; set; }
    public string Album { get; set; }
    public string Author { get; set; }
    public string TabAuthor { get; set; }
    public DateTime DateAdded { get; set; }

    [Column("file",TypeName="image")]
    public byte[] File { get; set; }

    public TabModel()
    {
        Id = Guid.NewGuid();
        DateAdded = DateTime.Now;
    }
}

У меня также есть класс, производный от DbContext, и когда я использую его, что-то вроде этого

library.Tabs.Add(tab);//tab of type TabModel, File is array with length equals 12000
library.SaveChanges();//throws exception

Ошибка:

Проверка не удалась для одного или нескольких объектов. Увидеть Свойство EntityValidationErrors для более подробной информации. EntityValidationErrors [0] = "Поле File должно быть строкой или массивом тип с максимальной длиной '4000'. "

Я пытался использовать атрибут MaxLength при изменении свойства и ошибки на «Двоичный столбец длиной более 8000 не поддерживается».

Похоже, EF отображает столбец в двоичный тип, а не в изображение. Как это исправить?

1 Ответ

7 голосов
/ 12 июля 2011

Смотрите это сообщение в блоге: http://erikej.blogspot.com/2011/04/saving-images-to-sql-server-compact.html - вам нужно отключить проверку как обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...