首页 > 数据库技术 > 详细

关于mvc5+EF里面的db.Entry(model).State = EntityState.Modified报错问题

时间:2015-12-02 14:33:52      阅读:1043      评论:0      收藏:0      [点我收藏+]

最近在使用mvc5+EF的的时候用到了这句话

  db.Entry(model).State = EntityState.Modified

看上去很简单的修改数据,但是一直报错,说是key已经存在,不能修改。

搞了很久,突发奇想的把前面的代码

  var approvalModel = CurrentUser.ApplicationForms.SingleOrDefault(t => t.ID == id).Approval;

  if(approvalModel!=null){

    db.Entry(model).State = EntityState.Modified;

  }

改成  

if (db.Approvals.Any(t => t.ApprovalID == model.ApprovalID))
{
db.Entry(model).State = EntityState.Modified;
}

就不报错了。

是不是感觉很奇怪? 原因居然是approval已经取出来了,这是和数据库有关联,新的approval model虽然id一样但不是同一个对象,不能修改!

或者  

var db = new CarLoanDBContext();就是换一个db对象

关于mvc5+EF里面的db.Entry(model).State = EntityState.Modified报错问题

原文:http://www.cnblogs.com/shootingstar/p/5012756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!