我在MVC中使用了Entndo Framework的Kendo UI网格,我对这两者都不熟悉。我一直在使用Kendo的许多教程,为此我使用了Ajax Editior。这是我在控制器中更新的内容,但更新不会触发。
public ActionResult Opt_Update([DataSourceRequest] DataSourceRequest request, PQAViewModel
optData)
{
if (ModelState.IsValid)
{
using (var pqaData = new PQAEntities())
{
var entity = new ProductQualityFileFull
{
Jobber = optData.Jobber,
Dealer = optData.Dealer,
OptInd = optData.OptInd,
establish_date_time = optData.establish_date_time,
establish_id = optData.establish_id
};
pqaData.ProductQualityFileFulls.Attach(entity);
pqaData.Entry(entity).State = EntityState.Modified;
pqaData.SaveChanges();
}
}
return Json(new[] { optData.OptInd }.ToDataSourceResult(request, ModelState));
}
它解决问题的两条线就在这里:关于如何解决这个问题的任何想法?
pqaData.ProductQualityFileFulls.Attach(entity);
pqaData.Entry(entity).State = EntityState.Modified;
答案 0 :(得分:0)
如果您正在获取EntityValidationErrors,则为EF添加特定的异常处理程序。
try{
using (var pqaData = new PQAEntities())
{
var entity = new ProductQualityFileFull
{
Jobber = optData.Jobber,
Dealer = optData.Dealer,
OptInd = optData.OptInd,
establish_date_time = optData.establish_date_time,
establish_id = optData.establish_id
};
pqaData.ProductQualityFileFulls.Attach(entity);
pqaData.Entry(entity).State = EntityState.Modified;
pqaData.SaveChanges();
}
}
catch (DbEntityValidationException e)
{
//Check your errors here
}
可能是你试图将null放入一个不可为空的字段等。