我有以下表格:如何防止MVC3映射表中的重複記錄?
Client (PKey = ClientId)
User (PKey = UserId)
UserClient (FKeys = ClientId, UserId)
當我嘗試在UserClient表中添加一條記錄(映射),使得UserClient對應該是唯一的,它允許重複的記錄。
我想阻止這種情況。意思是,當試圖添加現有的用戶 - 客戶端對時,它應該拋出客戶端驗證。
我該如何防止重複記錄在MVC3的映射表中的輸入?
我有以下表格:如何防止MVC3映射表中的重複記錄?
Client (PKey = ClientId)
User (PKey = UserId)
UserClient (FKeys = ClientId, UserId)
當我嘗試在UserClient表中添加一條記錄(映射),使得UserClient對應該是唯一的,它允許重複的記錄。
我想阻止這種情況。意思是,當試圖添加現有的用戶 - 客戶端對時,它應該拋出客戶端驗證。
我該如何防止重複記錄在MVC3的映射表中的輸入?
這聽起來像你想要唯一標識列。 Yu可以通過SQL Server中的Candidate Key來實現,但實體框架中不支持。
Entity Framework: Alternate solution to using non primary unique keys in an association
你會得到重複,因爲UserClientId獨立於外鍵你設置的。外鍵只能確保用戶和客戶表中存在的鍵被插入到UserClient表中。
如果可能,請刪除UserClientId主鍵並將您的ClientId & UserId設置爲UserClient表的主鍵。然後您將處理重複項和外鍵完整性。
這裏的實體關係圖會是什麼樣子:
你做的客戶端Id和用戶ID在UserClient主鍵不只是一個外鍵? – klabranche 2013-02-20 16:41:59
是的,我在UserClient表中有一個主鍵UserClientId。 – sam 2013-02-20 18:00:27
這不是MVC3的問題。這是一個數據庫設計問題。 :-) – klabranche 2013-02-20 18:22:38