无法保存已编辑的对象

时间:2015-10-01 13:26:31

标签: c# asp.net-mvc entity-framework

我创建了管理面板,管理员可以在其中编辑和更新学生列表。数据已正确编辑,但保存时出错。

错误:

  

发生了参照完整性约束违规:属性   关系一端的'ApplicationUser.Id'的值不会   匹配'student.ApplicationUserID'的属性值   另一端

我认为问题是因为我将User.id应用于ApplicationUserID,但我不知道如何解决它。

我的学生课程如下:

public class student 
{ 
   public int Id { get; set; }  
   public string FirstName { get; set; }  
   public string SecondName { get; set; }  
   public string ClassName { get; set; }
   public virtual ApplicationUser Users { get; set; } 
   public string ApplicationUserID { get; set; }    
}

保存ActionResult方法是:

public ActionResult Edit(student st)
{
    ApplicationDbContext db = new ApplicationDbContext();

    //UpdateModel<istudent>(st);
    if (ModelState.IsValid)
    {
        db.Entry(st).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View("Index");
}

1 个答案:

答案 0 :(得分:0)

您正在更新ApplicationUserId外键值而不更新原始ApplicationUser.Id值。

参照完整性似乎表明关系是外键约束违规。