ASP.NET会员提供者。为aspnet_Users.UserName定义一个外键

 2023-02-17    369  

问题描述

我想将外键设置为默认会员表,但是在尝试定义它时我会遇到错误.我正在使用默认的ASPNET_USERS表和我自己的帖子表.我试图设置表如下:

aspnet_users

ASP.NET会员提供者。为aspnet_Users.UserName定义一个外键

  • userId(pk)唯一身份证
  • 用户名nvarchar(256)

帖子

  • postid(pk)int
  • 用户名(fk-> aspnet_users.username)nvarchar(256)

但是,当我尝试使用VS 2010 Designer进行设置时,它给了我以下错误:

The columns in table 'aspnet_Users' do not match an existing primary key
or unique constraint.

这不起作用,因为aspnet_Users.UserName不是aspnet_Users的PK的一部分吗?我试图更改表以将其作为PK的一部分包括在内(我认为这使它成为复合密钥?),但是它告诉我先删除关系,然后才能做到这一点.由于我不知道默认会员表定义了什么关系,所以我宁愿在走这条路线之前找到更多.

推荐答案

错误消息正在完全描述情况 – 您正在尝试在外键约束中使用非关键字段.您建议尝试创建一个复合键以解决此问题,这将有效,但是为什么不简单地使用现有的主键呢?

UserID字段是一个唯一的Indidentifier PK,因此已经配置为用于FK中的使用.而且,您将利用归一化,因此每行中的每个用户名256个字节而不是存储独特的识别符(16个字节).

其他推荐答案

我认为您也需要将其与ApplicationID结合使用.用户ID不是唯一的,除非与应用程序ID结合使用.

以上所述是小编给大家介绍的ASP.NET会员提供者。为aspnet_Users.UserName定义一个外键,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34111.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。