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;
  • 相关阅读:
    页面使用本地IE版本
    C#获取客户端ip
    获取存储过程返回数据
    自制js表格排序
    读取数据用rs.open sql,conn,1,1
    学习存储过程
    COLLATE Chinese_PRC_CI_AS
    sqlserver存储过程语句(转)
    用P3P header解决iframe跨域访问cookie(转载)
    java通过dom创建和解析xml
  • 原文地址:https://www.cnblogs.com/BeanHsiang/p/2456817.html
Copyright © 2011-2022 走看看