You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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的主键属性
        });
}

操作步骤:

  1. 替换原有的多对多关系配置代码
  2. 运行以下命令重新生成迁移并更新数据库:
    Add-Migration RenameJoinTableColumns
    Update-Database
    

内容的提问来源于stack exchange,提问作者Aelith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:00:11