[asp.net-mvc]剑道 UI 不能保存在数据库中的属性

标签: Asp.net-MVC
发布时间: 2016/10/9 6:12:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我做了一个更新 Controller 更新属性并将其保存在数据库中。当我保存 isSelected 是真的,在原来 false 后点击 Refresh 按钮。我不知道发生了什么事与我的代码。

public ActionResult UpdateSub([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<SubCateViewModel> list)
        {
            if (list != null && ModelState.IsValid)
            {
                foreach (var SubCate in list)
                {
                    var categoriToUpdate = dbContext.ProductSubcategories.First(p => p.ProductSubcategoryID == SubCate.ProductSubcategoryID);
                    TryUpdateModel(categoriToUpdate); //maybe the problem ???
                    dbContext.SaveChanges();
                }
              }
           return Json(new[] { list }.ToDataSourceResult(request));
          }

我的代码的任何建议。谢谢您的宝贵时间 !

解决方法 1:

你不像那样更新实体记录。以下是使用更新记录 EF 的正确方法

//get the record first
var category= dbContext.ProductSubcategories.where(p => p.ProductSubcategoryID == SubCate.ProductSubcategoryID).SingleOrDefault();

//update the catgory
category.isSelected=true;
category.Name="New Name for example";

//Mark catgory obejct as modified
 dbContext.Entry(category).State = EntityState.Modified;
//Save whole entity graph to the database
 dbContext.SaveChanges();
  • 如果您要更新的列表记录我建议在接受列表 catList 的 DAL 使已经分离功能做 foreach 列表中的,最后一次执行最后更新记录一个接一个,然后 SaveChanges()。
  • EF http://msdn.microsoft.com/en-us/data/jj574232.aspx的详细信息

官方微信
官方QQ群
31647020