Я пытаюсь сначала использовать код Entity Framework для простого проекта базы данных, и у меня возникает проблема, которую я просто не могу понять.
Я заметил, что EF устанавливал идентификатор для моих таблиц, автоматически увеличиваясь на 1 каждый раз, полностью игнорируя значение, введенное вручную для этого поля. После некоторых поисков я понимаю, что правильный способ отключить это поведение:
modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Однако теперь я просто получаю эту ошибку, и я понятия не имею, почему:
Необработанное исключение: System.Data.Entity.Infrastructure.DbUpdateException: ошибка при обновлении записей. См. Внутреннее исключение для Детали. ---
System.Data.UpdateException: при обновлении записей произошла ошибка. Подробнее см. Внутреннее исключение. --- > System.Data.SqlClient.SqlException: не может вставить явное значение для столбец идентификатора в таблице "События", когда для параметра IDENTITY_INSERT установлено значение "ВЫКЛ".
Если это полезно, вот класс POCO, о котором идет речь:
public class Event
{
[Key, Required]
public int EventID { get; set; }
public string EventType { get; set; } //TODO: Event Type Table later on
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public virtual ICollection<Match> Matches { get; set; }
public virtual ICollection<EventParticipation> EventParticipation { get; set; }
}
Спасибо заранее.