Entity framework EF是否添加额外的FK?

Entity framework EF是否添加额外的FK?,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我有以下两个实体: public class Team { public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Fixture> Fixtures { get; set; } } public class Fixture { public int Id { get; set; } public Result Resul

我有以下两个实体:

public class Team
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Fixture> Fixtures { get; set; }
}

public class Fixture
{
    public int Id { get; set; }
    public Result Result { get; set; }

    public int HomeTeamId { get; set; }
    public int AwayTeamId { get; set; }

    public virtual Team HomeTeam { get; set; }
    public virtual Team AwayTeam { get; set; }
}
公共类团队
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection装置{get;set;}
}
公务舱固定装置
{
公共int Id{get;set;}
公共结果结果{get;set;}
public int HomeTeamId{get;set;}
公共int{get;set;}
公共虚拟团队HomeTeam{get;set;}
公共虚拟团队AwayTeam{get;set;}
}
然后,我将其映射为:

public class FixtureMap : EntityTypeConfiguration<Fixture>
{
    public FixtureMap()
    {
        HasRequired(x => x.AwayTeam).WithMany().HasForeignKey(x => x.AwayTeamId);
        HasRequired(x => x.HomeTeam).WithMany().HasForeignKey(x => x.HomeTeamId);
    }
}
公共类FixtureMap:EntityTypeConfiguration
{
公共FixtureMap()
{
HasRequired(x=>x.AwayTeam).WithMany().HasForeignKey(x=>x.AwayTeam);
HasRequired(x=>x.HomeTeam).WithMany().HasForeignKey(x=>x.HomeTeamId);
}
}
但当我添加迁移时,EF正在为我的
Fixture
表创建一个额外的FK和列,我不知道为什么?我怎么能说不太好呢

正如您所看到的,它添加了一个名为
Team\u Id
的列,并从中创建了一个FK,即使我在映射中指定了关系?

使用以下代码:

public class Team
{
public int Id { get; set; }
public string Name { get; set; }

[InverseProperty("HomeTeam")]
public virtual ICollection<Fixture> HomeFixtures { get; set; }

[InverseProperty("AwayTeam")]
public virtual ICollection<Fixture> AwayFixtures { get; set; }
}


public class Fixture
{
   public int Id { get; set; }
   public Result Result { get; set; }

   public int HomeTeamId { get; set; }
   public int AwayTeamId { get; set; }

   [InverseProperty("HomeFixtures")]
   [ForeignKey("HomeTeamId ")]
   public virtual Team HomeTeam { get; set; }

   [InverseProperty("AwayFixtures")]
   [ForeignKey("AwayTeamId")]
   public virtual Team AwayTeam { get; set; }
}
公共类团队
{
公共int Id{get;set;}
公共字符串名称{get;set;}
[逆属性(“主队”)]
公共虚拟ICollection HomeFixtures{get;set;}
[反向属性(“AwayTeam”)]
公共虚拟ICollection AwayFixtures{get;set;}
}
公务舱固定装置
{
公共int Id{get;set;}
公共结果结果{get;set;}
public int HomeTeamId{get;set;}
公共int{get;set;}
[反向财产(“家庭固定装置”)]
[ForeignKey(“HomeTeamId”)]
公共虚拟团队HomeTeam{get;set;}
[反向属性(“AwayFixtures”)]
[外键(“AwayTeamId”)]
公共虚拟团队AwayTeam{get;set;}
}
以及:

公共类FixtureMap:EntityTypeConfiguration
{
公共FixtureMap()
{
HasRequired(x=>x.AwayTeam).WithMany().HasForeignKey(x=>x.AwayTeamId).willCascadeOnDelete(false);
HasRequired(x=>x.HomeTeam).WithMany().HasForeignKey(x=>x.HomeTeamId);
}
}
  public class FixtureMap : EntityTypeConfiguration<Fixture>
  {
      public FixtureMap()
      {
          HasRequired(x => x.AwayTeam).WithMany().HasForeignKey(x => x.AwayTeamId).willCascadeOnDelete(false);
          HasRequired(x => x.HomeTeam).WithMany().HasForeignKey(x => x.HomeTeamId);
      }
  }