驗證ASP.NET 5 MVC 6中的重複條目

asp.net-core asp.net-core-mvc entity-framework-core

使用asp.net 5,MVC 6,代碼優先,實體框架7,beta 8。

我理解一些驗證可以通過屬性上的註釋來處理,例如數據類型,最小值,最大值和jquery腳本,但是我不確定如何通過代碼驗證來防止重複條目進入數據庫,例如防止重複e - 表單上的郵件註冊表。

我可以在我的模型屬性上使用任何註釋,還是需要在我的控制器中編寫代碼以處理此自定義驗證?有人舉個例子嗎?

熱門答案

EF7沒有任何魔法來防止表中的重複值。驗證重複項的唯一方法是對數據庫進行往返。執行此操作的最佳方法是使用唯一約束。這可以表示為唯一索引。任何插入重複條目的嘗試都應該拋出異常。

也就是說,您可以將EF7配置為在OnConfiguring方法中識別數據庫中的唯一索引。請參閱索引:在EF7文檔中配置模型

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



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因