Kendo UI无法保存数据库中的属性

时间:2014-03-27 10:21:22

标签: asp.net-mvc kendo-asp.net-mvc

我做了一个更新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 个答案:

答案 0 :(得分: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();
  • 如果你要更新记录列表,我建议在DAL中创建一个seprate函数,接受List catList并在列表中执行foreach并逐个更新记录,然后在最后一个上执行SaveChanges()来执行final。
  • 有关EF的更多信息 http://msdn.microsoft.com/en-us/data/jj574232.aspx

shaz