EF无法为表格中的标识列插入显式值“患者捐赠者”#39;当IDENTITY_INSERT设置为OFF时

时间:2015-10-21 09:55:51

标签: c# .net entity-framework model-view-controller

我正在使用EF,我有一个具有身份属性的表,我尝试了很多解决方案,但我仍然得到了这个错误。 我将类中的属性定义为:

[Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int PATIENTDONORID { get; set; } 

我仍然得到了这个错误,我在OnModelCreating中打开了身份选项,我也得到了同样的错误

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
           // throw new UnintentionalCodeFirstException();

            modelBuilder.Entity<PATIENT_DONOR>().Property(x => x.PATIENTDONORID)
              .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

        }

这是在数据库中插入和保存更改的代码:

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();

我该怎么办?

1 个答案:

答案 0 :(得分:0)

现在工作正常。 我意识到在dB的任何变化之后我必须删除并重新划分模型中的表。 并且代码本身没有问题