EntityFramework本身提供了非常方便的数据验证特性,以支持用户交互过程中输入项错误时的友好提示。其实业务逻辑层的开发同样离不开这个特性。就拿登录之个典型场景来说,首先定义出用户实体模型,假设对用户名的长度增加了一个约束,那么登录界面上输入了超出长度的用户名是可以马上显示错误提示的,但登录的方法本身也需要再次校验用户名合法性的,不需要另外编码,EntityFramework在SaveChanges的时候会自动进行校验的,这个时候需要捕获DbEntityValidationException异常并取得之前与UI一致的ErrorMessage。

具体看另一个简单的示例:

public class Author
{public int Id { get; set; }[MaxLength(10, ErrorMessage = "OUT OF RANGE")]public string Name { get; set; }
}public class Blog : DbContext
{public DbSet<Author> Authors { get; set; }
}

用一个控制台应用程序来模拟

string error = string.Empty;
using (var blog = new Blog())
{Author author = new Author{Name = "ErrorNameForTest"};blog.Authors.Add(author);try{blog.SaveChanges();}catch (DbEntityValidationException ex){foreach (var item in ex.EntityValidationErrors){foreach (var item2 in item.ValidationErrors){error = string.Format("{0}:{1}\r\n", item2.PropertyName, item2.ErrorMessage);}}}
}
return error;

转载于:https://www.cnblogs.com/BeanHsiang/archive/2012/04/19/2456817.html

合理使用EntityFramework数据验证的异常错误提示信息相关推荐

  1. SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)

    SpringBoot系列五:SpringBoot错误处理(数据验证.处理错误页.全局异常) 参考文章: (1)SpringBoot系列五:SpringBoot错误处理(数据验证.处理错误页.全局异常) ...

  2. Silverlight - Validation 客户端同步数据验证

    前文介绍过Silverlight Validation中两个数据验证机制,ValidatesOnExceptions异常捕获验证机制和DataAnnotation验证机制,这两种验证机制,是在Silv ...

  3. Vue 表单验证、数据验证

    graceUI js 模块 graceUI 官网 http://grace.hcoder.net 首页视频教程第一节可观看组件演示 (: 使用说明 1 将 graceChecker.js 部署到您的项 ...

  4. SpringBoot 数据验证错误处理

    在之前的程序里面如果一旦出现了错误之后就会出现一堆大白板,这个白板会有一些错误信息(虽然这些错误信息你可能看不懂,但是这些错误信息依然要告诉给用户).在SpringBoot里面针对于错误的处理一共提供 ...

  5. checkValidity()验证输入信息合法性,自定义错误提示信息方法及误区

    如果input元素中的数据合法则返回true,反之则返回false.inputObj.validationMessage系统会动态赋予默认值,比如type="number" min ...

  6. .NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记...

    17 | 为选项数据添加验证:避免错误配置的应用接收用户流量 三种验证方法 1.直接注册验证函数 2.实现 IValidateOptions 3.使用 Microsoft.Extensions.Opt ...

  7. Express接口综合案例(创建项目、配置常用中间件、路由设计、提取控制器模块、配置错误统一处理中间件、用户注册的数据验证,密码加密)

    一.创建项目 二.目录结构 三.配置常用中间件 3.1 解析请求体 express.json() express.urlencoded() 3.2 日志输出 morgan() 3.3 为客户端提供跨域 ...

  8. MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息...

    Asp.net MVC中的提供非常简单易用的数据验证解决方案. 通过System.ComponentModel.DataAnnotations提供的很多的验证规则(Required, StringLe ...

  9. excel导入数据校验_Excel数据验证错误消息

    excel导入数据校验 Do you like to use error checking in Excel, so that problem cells are flagged, or do you ...

最新文章

  1. 电脑任何字都打不出来_“有时候觉得自己一个字都写不出来了”
  2. web自动化测试---概述
  3. 北理工计算机博士怎么样,北京理工大学在职博士的含金量怎么样
  4. SLAM | 使用三维位姿图优化减少单目视觉里程计(3D Visual Odometry)定位轨迹的漂移(附源代码)
  5. 7.1使用Request获取HTTP请求头
  6. Android之React native的介绍和入门指南
  7. java面板中添加面板_如何把窗体加入面板中 java
  8. node.js用get方式获取网页中的链接
  9. CPU 用户时间 系统时间
  10. C# RabbitMQ(一)介绍
  11. [转帖]超能课堂:Intel平台芯片组变迁史
  12. 企业微信的一周小结是怎么统计的?
  13. django crontab UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 9: invalid start
  14. 火车售票管理系统 问题陈述和词汇表
  15. “物联网开发实战”学习笔记-(四)智能音箱制作和语音控制
  16. GUI上半段学习总结
  17. PCM音频采样数据处理
  18. 启动3dMax时一直停留在启动屏幕并显示文本“starting 3ds Max…”怎么办?
  19. 【函数式】Monads模式初探——Monad概念
  20. 本地rdm连接服务器redis

热门文章

  1. 算术编码原理与实现【转载】
  2. 小程序基础 - wafer2 - PHP - 后台和前台 - 利用对象数组来传递表单数组的正确方法 - 下载部分(服务器到微信)
  3. QT 编译通过但是运行出现程序异常结束或者crashed的问题 在QT creator中最佳解决办法
  4. java 画树_java – 如何绘制代表连接节点图的树?
  5. mysql floor报错_【学习笔记】MYSQL的floor报错原理分析总结
  6. android导入导出txt通讯录,Android导入导出txt通讯录工具
  7. 打印出所有的水仙花数javascript_期末C语言特辑 水仙花数
  8. java final const_Java 中的final 和C++ 中的const 有什么区别?
  9. ffmpeg 参数_使用FFMPEG进行视频转码
  10. 计算机中乘法是什么函数,c - 分解简单的C函数。 (在64位计算机中为128位乘法) - 堆栈内存溢出...