要将ASP.NET MVC 5的核心身份公司ID外键添加到dbo.AspNetUsers表上,可以按照以下步骤进行操作:
首先,创建一个新的数据库表来存储公司信息。可以使用以下SQL语句创建一个名为"Companies"的表:
CREATE TABLE Companies
(
Id INT PRIMARY KEY IDENTITY,
Name VARCHAR(50),
Address VARCHAR(100),
...
)
在这个表中,可以添加其他与公司相关的列,如地址、电话等。
在dbo.AspNetUsers表中添加一个外键列,用于关联到Companies表的主键。可以使用以下SQL语句将外键列添加到AspNetUsers表中:
ALTER TABLE dbo.AspNetUsers
ADD CompanyId INT NULL
这将在AspNetUsers表中添加一个名为"CompanyId"的外键列,并允许它为空。
接下来,创建一个外键约束,将CompanyId列与Companies表的Id列关联起来。可以使用以下SQL语句创建外键约束:
ALTER TABLE dbo.AspNetUsers
ADD CONSTRAINT FK_AspNetUsers_Companies
FOREIGN KEY (CompanyId) REFERENCES Companies(Id)
这将创建一个名为"FK_AspNetUsers_Companies"的外键约束,将CompanyId列与Companies表的Id列关联起来。
在ASP.NET MVC 5应用程序中,需要更新实体模型以反映新的外键关系。可以在AspNetUser类中添加一个新的Company属性,如下所示:
public class ApplicationUser : IdentityUser
{
// other properties
public int? CompanyId { get; set; }
public virtual Company Company { get; set; }
}
在这个示例中,假设已经创建了一个名为Company的实体类,用于表示公司。
最后,在IdentityDbContext子类中更新OnModelCreating方法,以表示新的外键关系。可以使用以下代码示例:
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public DbSet Companies { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity()
.HasOptional(u => u.Company)
.WithMany()
.HasForeignKey(u => u.CompanyId);
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
在这个示例中,假设已经创建了一个名为Company的DbSet,用于表示公司。
完成以上步骤后,就成功将ASP.NET MVC 5的核心身份公司ID外键添加到dbo.AspNetUsers表上了。现在可以使用新的Company属性来关联用户和公司。