我有三个表:Login,LoginRoles和Roles。登录加入LoginRoles和LoginRoles加入Roles。 LoginRoles是一个多对多表,我想将列限制为唯一的一起。
LoginRoles:MemberId(int),RoleId(int)
这类似于默认成员资格数据库中的aspnet_UsersInRoles表: Table 3.2
我将此表的主键设置为两列。
将表格拖入DBML图表时,我看不到图中所示的主键,我收到警告(以及其他类似的警告):
警告1 DBML1062:Type元素“Login”的关联元素“Login_LoginRole”的Type属性“LoginRole”没有主键。不会为关联生成代码。 0 0
有关如何识别主键的任何想法?
答案 0 :(得分:1)
您正在尝试使用2个值键作为表的主键。这应该在SQL表定义中完成。如果右键单击表定义,则应该能够访问“索引/键”选项。在那里,您可以指定要用作主键的2列。
或者你可以运行一个小的SQL脚本,例如:
ALTER TABLE LoginRoles
ADD CONSTRAINT pk_MemberRole PRIMARY KEY (MemberID,RoleID)
更新表后,您需要将表删除/重新放回DBML设计器,代码将更新。