Сохраните файл в SQL CE 4 с использованием подхода Entity Framework Code-First

Я пытаюсь добавить объект в SQL CE 4, который имеет свойство type 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 отображает столбец в двоичный тип не изображение. Как это исправить?

7
задан ErikEJ 12 July 2011 в 16:03
поделиться