我创建了两个模型,Order(用于商店订单)和 ShopItem(用于商店产品)。这两个模型具有多对多的关系。它们如下:
订单型号
public class Order
{
[Key]
public string order_id { get; set; }
public List<ShopItem> Items { get; set; }
//some other info...
}
ShopItem 模型
public class ShopItem
{
[Key, Column("shop_item_id")]
public string ItemId { get; set; }
public List<Order> Orders { get; set; }
//some other info...
}
为了在 DBContext 中提供多对多关系,我做了接下来的事情:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>()
.HasMany(a => a.Items)
.WithMany(a => a.Orders)
.UsingEntity("OrderItemJoinTable");
}
进行迁移后,我得到一个名为 OrderItemJoinTable 的表,其属性如下: ItemsItemId; 订单order_id。 问题是我需要为它们起一个正确的名称,例如“item_id”和“order_id”。如何更改此表中此类属性的名称?
在配置中包含列名称。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>()
.HasMany(a => a.Items)
.WithMany(a => a.Orders)
.UsingEntity(j =>
{
j.ToTable("OrderItemJoinTable");
j.Property("ItemsItemId").HasColumnName("item_id");
j.Property("Ordersorder_id").HasColumnName('order_id')
};
}