Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 针对ASP.NET 5 MVC 6中的重复条目进行验证_Asp.net Core_Asp.net Core Mvc_Entity Framework Core - Fatal编程技术网

Asp.net core 针对ASP.NET 5 MVC 6中的重复条目进行验证

Asp.net core 针对ASP.NET 5 MVC 6中的重复条目进行验证,asp.net-core,asp.net-core-mvc,entity-framework-core,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,使用asp.NET5、MVC6、代码优先、实体框架7、Beta8 我知道一些验证可以通过属性上的注释来处理,例如数据类型、最小值、最大值和jquery脚本,但我不确定如何在代码中验证数据库中的重复条目,比如防止表单上的重复电子邮件注册表 在我的模型属性上是否有任何注释可用于此操作,或者我是否需要在控制器中编写一些代码来处理此自定义验证?有人举个例子分享吗 EF7没有任何防止表中重复值的魔力。验证重复项的唯一方法是往返数据库。最好的方法是使用唯一的约束。这可以表示为唯一索引。任何插入重复条目的尝试

使用asp.NET5、MVC6、代码优先、实体框架7、Beta8

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


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

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

也就是说,您可以将EF7配置为在OnConfigurang方法中识别数据库中的唯一索引。参见EF7文档中的

        modelBuilder.Entity<User>()
            .Index(b => b.Email)
            .Unique();
modelBuilder.Entity()
.Index(b=>b.Email)
.Unique();
对于EF7:builder.Entity().HasIndex(b=>b.Email).IsUnique(true)