Это отличное решение, но оно не сработало для моей проблемы. Я использую EF 6 с классами, сгенерированными вначале из существующей базы данных. Одним из столбцов в таблице является IDENTITY с автоматически генерируемыми значениями. Однако сгенерированный частичный класс не предоставил атрибут [DatabaseGenerated (DatabaseGeneratedOption.Identity)] , необходимый для того, чтобы база данных генерировала ключ. В результате возникает ошибка « Невозможно вставить явное значение для столбца идентификаторов в таблице« mytable », если для параметра IDENTITY_INSERT установлено значение OFF. ». Я попробовал ваше решение, но оно не сработало. Но если я добавлю атрибут в исходный сгенерированный класс, он будет работать. Поэтому я все еще пытаюсь найти решение, которое не требует изменения автоматически сгенерированного файла.
Вот код, который я пробовал, используя ваше решение:
public interface IMyTable
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
int ID { get; set; }
}
public partial class MyTable : IMyTable
{
}
оригинальный сгенерированный код:
[Table("MyTable")]
public partial class MyTable
{
[Key]
[Column(Order = 1)]
public int ID { get; set; }
}