• 合理使用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;
  • 相关阅读:
    一个Spring的应用看起来象什么?
    IOC的优点是什么?
    解释对象/关系映射集成模块?
    XMLBeanFactory?
    使用Spring框架的好处是什么?
    什么是Spring MVC框架的控制器?
    什么是Spring的MVC框架?
    在Spring AOP 中,关注点和横切关注的区别是什么?
    你更倾向用那种事务管理类型?
    Spring支持的事务管理类型?
  • 原文地址:https://www.cnblogs.com/BeanHsiang/p/2456817.html
Copyright © 2020-2023  润新知