一、背景
小伙伴们在做网站登录验证或者EF时,可能会遇到DbEntityValidationException异常,但是并不能清楚知道到底是什么出了问题。
二、解决思路
1.先引入命名空间using System.Data.Entity.Validation;
2.直接通过try catch 来调试DbEntityValidationException的EntityValidationErrors的详细信息
3.或者通过try catch将DbEntityValidationException的异常信息输出来,如下
捕获DbEntityValidationException异常后,将异常里面的详细信息自定义输出。
try
{
//引发DbEntityValidationException异常的代码
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
string exLog= string.Format("Class: {0}, Property: {1}, Error: {2}", validationErrors.Entry.Entity.GetType().FullName,
validationError.PropertyName,
validationError.ErrorMessage);
}
}
throw;
}
catch (Exception ex)
{
throw;
}
通过这里的exLog我们就能知道DbEntityValidationException出问题的详细原因了。
三、注意事项
1.此解决方案参考了作者https://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html 的文章
2.我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出BIM相关软件开发以及编程干货;
3.欢迎加入BIM行业开发交流1群,获取更多开发资料 群号:711844216