zoukankan      html  css  js  c++  java
  • 合理使用EntityFramework数据验证的异常错误提示信息

          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;
  • 相关阅读:
    Oracle安装错误ora-00922(zhuan)
    Context上下文对象(抄书的)
    我的oracle账号
    jquery总结(1)
    JS改变input的value值不触发onchange事件解决方案 (转)
    写表单验证等页面的总结
    表单验证模板2
    Session随便写的(抄书笔记)
    cookie随便写的一点笔记(抄书的)
    Oracle触发器修改数据时同步执行插入该条数据
  • 原文地址:https://www.cnblogs.com/BeanHsiang/p/2456817.html
Copyright © 2011-2022 走看看