我有以下表格:
Client (PKey = ClientId)
User (PKey = UserId)
UserClient (FKeys = ClientId, UserId)
当我尝试在UserClient表中添加记录(映射)以使用户 - 客户端对应该是唯一的时,它允许重复记录。
我想阻止它。这意味着,当尝试添加现有的User-Client对时,它应该抛出客户端验证。
如何防止在MVC3中的映射表中输入重复记录?
答案 0 :(得分:0)
听起来你想要唯一地识别列。 您可以借助SQL Server中的Candidate Key来实现这一点,但实体框架中不支持它。
Entity Framework: Alternate solution to using non primary unique keys in an association
答案 1 :(得分:0)
您将获得重复项,因为UserClientId独立于您设置的外键。外键仅确保插入UserClient表中的键存在于User和Client表中。
如果可能,请删除UserClientId主键并设置ClientId& UserId也是UserClient表的主键。然后,您将处理重复项和外键完整性。
这是实体关系图的样子: