【问题标题】:Validate Unique Value in MVC5 and EF6验证 MVC5 和 EF6 中的唯一值
【发布时间】:2015-04-13 08:23:29
【问题描述】:

在我的 MVC 应用程序中,我有一个要求,我希望用户在列中插入唯一值。

即:UsernameUsers 表中应该是唯一的。

我在模型中使用了[Indes(IsUnique = true)] 数据注解。

但是当我在字段中插入重复值时,它会引发异常,但我想在我的视图上显示一条错误消息,说 请尝试使用不同的用户名

请帮帮我,我该怎么办?

【问题讨论】:

  • 是的,它几乎与您链接的内容相似,但我怎样才能做到这一点。我应该在我的业务层中隐式验证它还是有任何默认功能可以做到这一点。

标签: entity-framework model-view-controller unique


【解决方案1】:

您可以使用其中之一:

  1. 编写您的 CustomValidator(纽约推荐)

    [CustomRemoteValidator(ErrorMessage = @"Username already in use")]
    public string Username{ get; set; }`
    

    并覆盖 IsValid 方法

    public override bool IsValid(object value)
    {
        return !(this.DbContext.Set<User>().Any(a => 
            a.Username.Equals((string)value));
    }
    
  2. 在您的业务层检查它。

  3. 通过覆盖SaveChanges() 方法将实体保存到数据库之前检查它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    相关资源
    最近更新 更多