2015-11-03 47 views
0

使用asp.net 5,MVC 6,代码首先,实体框架7,β8在ASP.NET 5验证抗重复条目MVC 6

据我所知,一些验证可以通过注解的属性来处理,例如数据类型,最小值,最大值和jquery脚本,但我不知道如何在代码验证中针对重复条目进入数据库,例如防止在表单上重复发送电子邮件。

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

回答

0

EF7没有任何魔法来阻止表中的重复值。验证重复项的唯一方法是进行数据库往返。做到这一点的最佳方式是有一个独特的约束。这可以表示为一个独特的索引。任何尝试插入重复条目都会引发异常。

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

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

为EF7: builder.Entity () .HasIndex(B => b.Email) .IsUnique(真) – Sergey