[英]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.