簡體   English   中英

如何在 EF Core 中以一對多關系重命名列?

[英]How to rename column in one-to-many relation in EF Core?

我有一個包含 Teams 屬性的 League 類,它是一組團隊,如下所示:

public class LeagueEntity
{
    [Key]
    public int LeagueId { get; set; }
    ...
    [Required]
    public ICollection<TeamEntity> Teams { get; set; }
}


public class TeamEntity
{
    [Key]
    public int TeamId { get; set; }
    [Required]
    [MaxLength(100)]
    public string Name { get; set; }
    [Required]
    [MaxLength(10)]
    [Column(TypeName = "varchar(10)")]
    public string Code { get; set; }
    [Required]
    [MaxLength(300)]
    public string Logo { get; set; }
    [Required]
    [MaxLength(100)]
    public string Country { get; set; }
    [Required]
    public string IsNational { get; set; }
    [Required]
    public int Founded { get; set; }
    [Required]
    public VenueEntity Venue { get; set; }
}

當我更新數據庫時,會創建兩個表 - Leagues 和 Teams。 在 Teams 表中,我有一列是外鍵,指向正確的聯賽,球隊所屬的聯賽。 該列名為“LeagueEntityLeagueId”。 如何重命名?

使foreign key顯式如下:

public class TeamEntity
{
    [Key]
    public int TeamId { get; set; }

    [ForeignKey("League")]
    public int LeagueId { get; set; } //  You can give the whatever name you want

    .........

    public LeagueEntity League {get; set;}

}

如果您不想要顯式外鍵和導航屬性,則可以執行以下操作:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
     base.OnModelCreating(modelBuilder);

     modelBuilder.Entity<LeagueEntity>().HasMany(l => l.Teams).WithOne().HasForeignKey("LeagueId");

}

在 TeamEntity 表中添加以下屬性

  public int LeagueId { get; set; }
  public virtual LeagueEntity LeagueEntity { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM