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