zoukankan      html  css  js  c++  java
  • 关于mvc5+EF里面的db.Entry(model).State = EntityState.Modified报错问题

    最近在使用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对象

  • 相关阅读:
    接口开发
    操作Excel
    操作mongodb
    sys模块
    操作redis
    操作数据库
    日志生成、发送邮件
    Codeforces Round #487 (Div. 2)
    bitset学习
    Training for 分块&莫队
  • 原文地址:https://www.cnblogs.com/shootingstar/p/5012756.html
Copyright © 2011-2022 走看看