我试图首先将实体框架代码用于一个简单的数据库项目,但遇到了一个我根本无法弄清楚的问题。
我注意到 EF 为我的表设置的 ID 每次自动增加 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 设置为 OFF 时,无法在表“事件”中插入标识列的显式值。
如果它有帮助,这里是有问题的 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; }
}
提前致谢。