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;
  • 相关阅读:
    机器学习理解
    如何让Vim成为我们的神器
    新一代 Linux 文件系统 btrfs 简介 【转载】
    第一次写Linux下Makefile的笔记
    UEFI boot sequence
    #pragma pack
    Linux makefile sample
    解决ScrollView中嵌套ListView滚动效果冲突问题
    Android SqLite升级
    Android 播放gif图片
  • 原文地址:https://www.cnblogs.com/BeanHsiang/p/2456817.html
Copyright © 2011-2022 走看看