Asp.net core 扩展Asp网络核心身份关系

Asp.net core 扩展Asp网络核心身份关系,asp.net-core,entity-framework-core,asp.net-identity,Asp.net Core,Entity Framework Core,Asp.net Identity,在Asp net核心(3.1)标识中,我希望在用户和操作员之间添加多对多关系。 (概念是许多用户可以跟随许多旅行社) 我有旅行社课程: public class TourOperator { public int Id { get; set; } public ICollection<Follow> Follows { get; set; } } 执行迁移后,为什么在下表中我有4个字段而不是3个? 我有以下字段: 我认为applicationSerid不能存在实体框架

在Asp net核心(3.1)标识中,我希望在用户和操作员之间添加多对多关系。 (概念是许多用户可以跟随许多旅行社)

我有旅行社课程:

public class TourOperator
{
   public int Id { get; set; }
   public ICollection<Follow> Follows { get; set; }
}
执行迁移后,为什么在下表中我有4个字段而不是3个? 我有以下字段:


我认为applicationSerid不能存在

实体框架无法链接
用户ID
ApplicationUser
属性。所以你们要么需要遵循惯例,EF可以根据惯例做出有根据的猜测。最简单的选项是重命名
字符串
属性:

public string ApplicationUserId { get; set; }
或者,您可以配置它,例如使用属性:

[ForeignKey("ApplicationUser"]
public string UserId { get; set; }
public ApplicationUser ApplicationUser { get; set; }
或者在
OnModelCreating
方法中,例如:

modelBuilder.Entity<Follow>()
    .WithOne(f => f.ApplicationUser)
    .HasForeignKey("UserId");
modelBuilder.Entity()
.WithOne(f=>f.ApplicationUser)
.HasForeignKey(“用户ID”);

实体框架无法链接
UserId
ApplicationUser
属性。所以你们要么需要遵循惯例,EF可以根据惯例做出有根据的猜测。最简单的选项是重命名
字符串
属性:

public string ApplicationUserId { get; set; }
或者,您可以配置它,例如使用属性:

[ForeignKey("ApplicationUser"]
public string UserId { get; set; }
public ApplicationUser ApplicationUser { get; set; }
或者在
OnModelCreating
方法中,例如:

modelBuilder.Entity<Follow>()
    .WithOne(f => f.ApplicationUser)
    .HasForeignKey("UserId");
modelBuilder.Entity()
.WithOne(f=>f.ApplicationUser)
.HasForeignKey(“用户ID”);

您需要告诉EF,
UserId
是链接到
ApplicationUser
的关键,一句话:约定
ApplicationUser
->
applicationserid
您需要告诉EF
UserId
是链接到
ApplicationUser
的关键,一句话:约定<代码>应用程序用户->
applicationserid