如何防止MVC3中映射表中的重复记录?

时间:2013-02-20 14:57:20

标签: duplicates record rdbms

我有以下表格:

Client (PKey = ClientId)
User   (PKey = UserId) 

UserClient (FKeys = ClientId, UserId)

当我尝试在UserClient表中添加记录(映射)以使用户 - 客户端对应该是唯一的时,它允许重复记录。

我想阻止它。这意味着,当尝试添加现有的User-Client对时,它应该抛出客户端验证。

如何防止在MVC3中的映射表中输入重复记录?

2 个答案:

答案 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表的主键。然后,您将处理重复项和外键完整性。

这是实体关系图的样子:

enter image description here