【问题标题】:Exception : Cannot remove an entity that has not been attached例外:无法删除尚未附加的实体
【发布时间】:2019-05-23 10:57:19
【问题描述】:

我收到了错误

“无法删除尚未附加的实体。”

当我尝试删除记录时,上面的代码。我已经搜索了很多相同但没有用的。

public ActionResult Delete(int id) {
        tbl_user_master emp = db.tbl_user_masters.Where(val => val.UserId == id).Select(val => new tbl_user_master()
            ).SingleOrDefault();

        db.tbl_user_masters.DeleteOnSubmit(emp);
        db.SubmitChanges();

        return RedirectToAction("Index", "User");
    }

我希望删除首选行,而不是每次都将我带到代码中。

【问题讨论】:

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


    【解决方案1】:
    tbl_user_master emp = db.tbl_user_masters.Where(val => val.UserId == id).Select(val => val 
                ).SingleOrDefault();
    

    这帮助我解决了代码

    谢谢

    【讨论】:

    • 你不应该需要.Select(val => val)。你可以做.Where(...).SingleOrDefault()。甚至.SingleOrDefault(v => c.UserId = id);
    【解决方案2】:

    如何使用DeleteOnSubmit 并将其应用于您的实体框架应用程序。

    【讨论】:

      【解决方案3】:

      你需要像这样获取对象

      tbl_user_master emp = db.tbl_user_masters.SingleOrDefault(val => val.UserId == id);
      

      您从 select 中获得了一个新的 tbl_user_masters 对象,而该对象不是 EF 跟踪的对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        相关资源
        最近更新 更多