0
使用asp.net 5,MVC 6,代码首先,实体框架7,β8在ASP.NET 5验证抗重复条目MVC 6
据我所知,一些验证可以通过注解的属性来处理,例如数据类型,最小值,最大值和jquery脚本,但我不知道如何在代码验证中针对重复条目进入数据库,例如防止在表单上重复发送电子邮件。
是否有任何注释可以用于我的模型属性上,或者是否需要在我的控制器中编写某些代码来处理此自定义验证?任何人都有一个例子来分享?
使用asp.net 5,MVC 6,代码首先,实体框架7,β8在ASP.NET 5验证抗重复条目MVC 6
据我所知,一些验证可以通过注解的属性来处理,例如数据类型,最小值,最大值和jquery脚本,但我不知道如何在代码验证中针对重复条目进入数据库,例如防止在表单上重复发送电子邮件。
是否有任何注释可以用于我的模型属性上,或者是否需要在我的控制器中编写某些代码来处理此自定义验证?任何人都有一个例子来分享?
EF7没有任何魔法来阻止表中的重复值。验证重复项的唯一方法是进行数据库往返。做到这一点的最佳方式是有一个独特的约束。这可以表示为一个独特的索引。任何尝试插入重复条目都会引发异常。
也就是说,您可以配置EF7来识别您的OnConfiguring方法中数据库中的唯一索引。请参阅EF7文档中的Indexes : Configuring Your Model。
modelBuilder.Entity<User>()
.Index(b => b.Email)
.Unique();
为EF7: builder.Entity() .HasIndex(B => b.Email) .IsUnique(真) –
Sergey