关于如何查看 EntityValidationErrors 详细信息的解决方法

关于MVC  UpdateModel的未能更新XXXXX的类型模型 的问题:

 

最近做MVC3的项目,相信很多人都碰到过这个问题,在此记录一下,异常:UpdateModel的未能更新XXXXX的类型模型

 

下面提供一种解决办法,通过查看EntityValidationErrors解决此异常

查看 EntityValidationErrors 详细信息的解决方法如下:

 

我们在 EF 的编程中,有时候会遇到这样一个错误:

 但是,按照他的提示 “See 'EntityValidationErrors' property for more details.” 去 Exception 中查看,却只能看到

并不能看到具体的是那个属性为什么验证不通过,也许不少人都遇到这种情况。

这里给大家介绍一个Exception类,让我们能够轻松的知道具体的哪一个字段出了什么问题。

那就是 System.Data.Entity.Validation.DbEntityValidationException,相信代码都知道怎么写了,最简单的就是

 
try
{
    // 发生异常代码 }
catch (DbEntityValidationException dbEx)
{

}

 

 
在 dbEx 里面中我们就可以看到

这样子我们就能看到 EntityValidationErrors 所有的 ValidationErrors 的详细信息了。

 
这样问题就解决了.
 

关于如何查看 EntityValidationErrors 详细信息的解决方法

 

try { }
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
      var msg = string.Empty;
      var errors = (from u in ex.EntityValidationErrors select u.ValidationErrors).ToList();
      foreach (var item in errors)
            msg += item.FirstOrDefault().ErrorMessage;
      return msg;
}    

 

 

 

posted @ 2012-03-29 14:35  Aaronguo  阅读(8773)  评论(0编辑  收藏  举报