验证ASP.NET 5 MVC 6中的重复条目

时间:2015-11-03 00:38:12

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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