【问题标题】:Validating against a duplicate entry in ASP.NET 5 MVC 6针对 ASP.NET 5 MVC 6 中的重复条目进行验证
【发布时间】:2016-02-03 01:00:00
【问题描述】:

使用 asp.net 5、MVC 6、代码优先、实体框架 7、beta 8。

我了解可以通过属性上的注释来处理某些验证,例如数据类型、最小值、最大值和 jquery 脚本,但我不确定如何针对进入数据库的重复条目进行代码验证,例如防止表单上出现重复的电子邮件注册。

是否有任何注释可以用于我的模型属性,或者我需要在我的控制器中编写一些代码来处理这个自定义验证?有人有例子可以分享吗?

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc entity-framework-core


    【解决方案1】:

    EF7 没有任何魔法来防止表中的重复值。验证重复项的唯一方法是往返数据库。最好的方法是使用唯一约束。这可以表示为唯一索引。任何插入重复条目的尝试都应引发异常。

    也就是说,您可以在 OnConfiguring 方法中配置 EF7 以识别数据库中的唯一索引。请参阅 EF7 文档中的 Indexes : Configuring Your Model

            modelBuilder.Entity<User>()
                .Index(b => b.Email)
                .Unique();
    

    【讨论】:

    • 对于 EF7:builder.Entity() .HasIndex(b => b.Email) .IsUnique(true)
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 2015-02-20
    • 2016-04-04
    • 2017-04-06
    • 2012-05-03
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多