0.一个问题

使用过EF的人相信都会遇到Validation failed for one or more entities. See ‘EntityValidationErrors’这种异常,这是由于EF在写入数据库前对实体验证不通过引起的异常(如果没有设置Configuration.ValidateOnSaveEnabled=false的话),由于EF没有将这个异常的详细信息抛到上层,经常无法跟踪到是哪个属性没有验证通过,虽然知道错了,但素还不知道错在哪里啊,怎么改?

1.在DbContext中记录EntityValidationErrors

既然你EF吃掉了EntityValidationErrors,那我得让它重新吐出来,先来二两代码:

public class TestDbContext:DbContext{public override int SaveChanges(){try{return base.SaveChanges();}catch (DbEntityValidationException exception){var errorMessages =exception.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage);var fullErrorMessage = string.Join(", ", errorMessages);//记录日志//Log.Error(fullErrorMessage);var exceptionMessage = string.Concat(exception.Message, " 验证异常消息是:", fullErrorMessage);throw new DbEntityValidationException(exceptionMessage, exception.EntityValidationErrors);}//其他异常throw到上层
        }}

相当清真的几行代码就能拿到EF的验证消息,很划算有木有!

在EF增删改时,底层启用实体验证且记录日志是非常必要的,特别是代码到了线上,如果没有日志,系统出异常的时候,简直无从下手……

转载于:https://www.cnblogs.com/wukaixian/p/5018066.html

记录EntityValidationErrors的详细信息相关推荐

  1. 一个或多个实体的验证失败。 有关更多详细信息,请参见“ EntityValidationErrors”属性

    使用代码优先方法为数据库播种时出现此错误. 一个或多个实体的验证失败. 有关更多详细信息,请参见'EntityValidationErrors'属性. 老实说,我不知道如何检查验证错误的内容. Vis ...

  2. Asp.Net MVC4入门指南(9):查询详细信息和删除记录

    在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. ? Code First 使得您可以轻松的使用Find方法来搜 ...

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

    关于如何查看 EntityValidationErrors 详细信息的解决方法 参考文章: (1)关于如何查看 EntityValidationErrors 详细信息的解决方法 (2)https:// ...

  4. EF提示一例对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性的解决

    EF提示一例对一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性的解决 在向数据库添加数据时出现该错误. 对出先错误的语句进行try ...

  5. C# - Entity Framework 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性

    问题: 在给某一个表添加或修改数据后,调用SaveChanges() 报如下错误: 1.Entity Framework 对一个或多个实体的验证失败.有关详细信息,请参阅EntityValidatio ...

  6. python爬取天猫_Python如何抓取天猫商品详细信息及交易记录

    本文实例为大家分享了Python抓取天猫商品详细信息及交易记录的具体代码,供大家参考,具体内容如下 一.搭建Python环境 本帖使用的是Python 2.7 涉及到的模块:spynner, scra ...

  7. 09、查询详细信息和删除记录

    在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. ? public ActionResult Details(i ...

  8. 查岗神器!如何查看连接过的WiFi记录+详细信息+密码!

    事情是这样的 晚上,隔壁住的小姐姐突然跑过来敲门 有点紧张 因为毕竟只在电梯见过,打过几次招呼而已 跟我急急忙忙说了一堆 WiFi密码 追不了哥哥 直播什么的 仔细深入问了一下,才整理清楚她的问题 其 ...

  9. 【JSP篇】——cookie之商品浏览记录的实现:4.显示商品的详细信息

    学习上一节:3.显示当前所有的商品效果与功能的实现 学习下一节:5.cookie实现前五条浏览记录 1.功能介绍 前面我们实现了商品所有信息的显示,接下来要实现某一商品详细信息的显示.那么我们就要思考 ...

最新文章

  1. 机器学习常用术语词汇表
  2. matlab 读取文件的精度,读取数据文件精度问题!真心求大神赐教 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  3. HP服务器RAID配置
  4. 代码组织和部署 文件操作 node.js
  5. vue动态切换css文件_vue实现样式之间的切换及vue动态样式的实现方法
  6. xlwings删除数据_xlwings如何删除行和列?
  7. swift语言 数组定义_如何在Swift中声明弱引用数组?
  8. adb.exe已停止工作
  9. python开发接口
  10. Python POST 修改某计步APP的数据
  11. word2013免费版下载和安装
  12. 用 Python 发电子邮件
  13. 计算机入门在线阅读,计算机应用基础教程(Windows 7+Office 2010)
  14. ReentrantReadWriteLock、StampedLock读写锁
  15. 如何批量将手写数据转Excel?
  16. VMware Workstation Pro虚拟机安装Windows server 2008 r2
  17. STM32 串口的使用
  18. 什么是中央管理服务器(CMS)?
  19. 用于土地使用和土地覆盖分类的landsat8的OLI波段组合的选择
  20. java生成word文档_Java多种方式动态生成doc文档

热门文章

  1. 最新版AnyDbTest数据库单元测试工具的下载地址
  2. 【LDA学习系列】LDA-Python库
  3. 【正一专栏】齐达内能熬过2018年的春天吗?
  4. 线程本地存储器——Windows核心编程学习手札之二十一
  5. Pandas简明教程:三、Pandas文件读写
  6. 交叉编译 FLTK1.3.0
  7. Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查
  8. select下拉框兼容写法
  9. plot、bar、stem、area函数绘图
  10. 4.5 matlab三维曲面(mesh、fmesh、meshc、meshz、surf、fsurf、surfc、surfl)