Sql 实体框架无法更新记录

Sql 实体框架无法更新记录,sql,asp.net-mvc,entity-framework,model-view-controller,entity,Sql,Asp.net Mvc,Entity Framework,Model View Controller,Entity,我正在使用MVC和实体框架开发一个Webapp,我遇到了一个问题,现在开始变得非常恼人 [HttpPost] [ValidateAntiForgeryToken] [ValidateInput(true)] public ActionResult ChangeUser(HttpPostedFileBase avatar, int? id) { try { if (id == null) ret

我正在使用MVC和实体框架开发一个Webapp,我遇到了一个问题,现在开始变得非常恼人

        [HttpPost]
    [ValidateAntiForgeryToken]
    [ValidateInput(true)]
    public ActionResult ChangeUser(HttpPostedFileBase avatar, int? id)
    {
        try
        {
            if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            if (ModelState.IsValid)
            {

                Models.Users usr = db.Users.Find(id);
                var at = db.Users.Attach(usr);
                if (usr == null) return HttpNotFound();
                at.Password = Encryption.Encode(usr.Password);
                at.Email = usr.Email;
                at.NickName = usr.NickName;
                if (avatar != null && avatar.ContentLength > 0)
                {
                    var _fileName = Path.GetFileName(avatar.FileName);
                    var ext = Path.GetExtension(_fileName);
                    var fileName = Encryption.EncodeFileName(_fileName);
                    //End of file properties
                    var path = Path.Combine(Server.MapPath("~/CMS-Content/User/Files/Avatars/"), fileName + ext);
                    avatar.SaveAs(Server.MapPath(path));
                    at.ThumbnailPath = path;
                }               
                db.Entry(usr).State = EntityState.Modified;
                // other changed properties
                db.SaveChanges();

                TempData["result"] = "User settings changed successfully.";
            }               
        }
        catch
        {
            TempData["result"] = "An error occured to change the user information!";
        }
        return RedirectToAction("Users");
    }

问题是数据库中的记录没有更新。我得到的输出是,它们已成功更新,但数据库中的记录没有更改。

尝试使用附加的模型上下文修改状态:
db.Entry(at).state=EntityState.modified。您的代码使用
var at=db.Users.Attach(usr)
更新了
Models.Users
的新实例,但在保存未修改的
usr
传递的更改并尝试将其设置为修改后的数据时,EF认为更新后的数据在跟踪后仍然保持不变。它不起作用。仍然是相同的结果。尝试使用附加的模型上下文修改状态:
db.Entry(at).state=EntityState.modified。您的代码使用
var at=db.Users.Attach(usr)
更新了
Models.Users
的新实例,但在保存未修改的
usr
传递的更改并尝试将其设置为修改后的数据时,EF认为更新后的数据在跟踪后仍然保持不变。它不起作用。还是一样的结果。