如何修改Entity Framework多对多关联表的属性名称
修改EF Core多对多中间表的外键列名
要将自动生成的ItemsItemId和Ordersorder_id改为item_id和order_id,只需在OnModelCreating中扩展多对多关系的Fluent API配置,显式指定中间表的外键列名:
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Order>() .HasMany(o => o.Items) .WithMany(s => s.Orders) .UsingEntity(joinEntity => { joinEntity.ToTable("OrderItemJoinTable"); // 配置关联ShopItem的外键列 joinEntity.HasOne<ShopItem>() .WithMany() .HasForeignKey("item_id") .HasPrincipalKey(s => s.ItemId); // 对应ShopItem的主键属性 // 配置关联Order的外键列 joinEntity.HasOne<Order>() .WithMany() .HasForeignKey("order_id") .HasPrincipalKey(o => o.order_id); // 对应Order的主键属性 }); }
操作步骤:
- 替换原有的多对多关系配置代码
- 运行以下命令重新生成迁移并更新数据库:
Add-Migration RenameJoinTableColumns Update-Database
内容的提问来源于stack exchange,提问作者Aelith
相关产品推荐
相关产品推荐

