C# EF无法在表';患者供体';当IDENTITY_INSERT设置为OFF时
我正在使用EF工作,我有一个具有标识属性的表,我尝试了很多解决方案,但我仍然得到了那个错误。 我将类中的属性定义为:C# EF无法在表';患者供体';当IDENTITY_INSERT设置为OFF时,c#,.net,entity-framework,model-view-controller,C#,.net,Entity Framework,Model View Controller,我正在使用EF工作,我有一个具有标识属性的表,我尝试了很多解决方案,但我仍然得到了那个错误。 我将类中的属性定义为: [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int PATIENTDONORID { get; set; } 我仍然得到那个错误,并且我在OnModelCreating中启用了identity选项,我也得到了相同的错误 protected overri
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int PATIENTDONORID { get; set; }
我仍然得到那个错误,并且我在OnModelCreating中启用了identity选项,我也得到了相同的错误
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// throw new UnintentionalCodeFirstException();
modelBuilder.Entity<PATIENT_DONOR>().Property(x => x.PATIENTDONORID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
我该怎么办?它现在工作正常。 我意识到在数据库中进行任何更改之后,我必须删除并重新整理模型中的表。
代码本身没有问题您可以尝试从数据库中的表中将“IsIdentity”属性转换为true吗。也许不是直截了当的方法。但我希望它是数据库中的标识。您希望PatientDonoId列作为PatientDonor表的主键吗?正确。但用户不会手动输入此列。请在问题本身中发布进行插入的代码,包括实际保存更改的代码。这是导致问题的原因,而不是配置。很难阅读注释中的代码。哈哈!哇-我会认为IDE的一个bug。o) 这是我第一次在将DB连接到visual IDE后更改它,所以我以前没有遇到过这个问题
foreach (var item in patient.DONORS)
{
if (item.Checked)
{
db.PATIENT_DONOR.Add(new PATIENT_DONOR() { PATIENT_ID = patient.PATIENT_ID, DONOR_ID = item.ID});
}
}
// db.Entry(patient).State = EntityState.Modified;
db.SaveChanges();