更改生成的连接名称 table(多对多)- EF Core 5
Change name of generated Join table ( Many to Many ) - EF Core 5
如何更改 EF Core 5 创建的连接 table 的名称?
例如
public class Food
{
public int FoodId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Ingredients { get; set; }
public string PhotoPath { get; set; }
public ICollection<Menu> Menus { get; set; }
}
public class Menu
{
public int MenuId { get; set; }
[Column(TypeName = "date")]
public DateTime MenuDate { get; set; }
public bool IsPublished { get; set; }
public ICollection<Food> Foods { get; set; }
}
和这 2 个名为 FoodMenu 的实体的连接 table,我想将其更改为其他名称..
您可以使用 UsingEntity
method overloads, for instance UsingEntity(Action<EntityTypeBuilder>)
之一。
由于是关系流畅配置API,你首先需要HasMany
+ WithMany
对,例如
modelBuilder.Entity<Food>()
.HasMany(left => left.Menus)
.WithMany(right => right.Foods)
.UsingEntity(join => join.ToTable("TheDesiredName"));
被接受的答案遗漏了一个我不得不努力解决的重要部分。
首先,您需要安装软件包
Microsoft.EntityFrameworkCore.Relational
然后你可以在你的 OnModelCreating
覆盖方法中添加以下内容
modelBuilder.Entity<Food>()
.HasMany(left => left.Menus)
.WithMany(right => right.Foods)
.UsingEntity(join => join.ToTable("NameYouWish"));
如何更改 EF Core 5 创建的连接 table 的名称?
例如
public class Food
{
public int FoodId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Ingredients { get; set; }
public string PhotoPath { get; set; }
public ICollection<Menu> Menus { get; set; }
}
public class Menu
{
public int MenuId { get; set; }
[Column(TypeName = "date")]
public DateTime MenuDate { get; set; }
public bool IsPublished { get; set; }
public ICollection<Food> Foods { get; set; }
}
和这 2 个名为 FoodMenu 的实体的连接 table,我想将其更改为其他名称..
您可以使用 UsingEntity
method overloads, for instance UsingEntity(Action<EntityTypeBuilder>)
之一。
由于是关系流畅配置API,你首先需要HasMany
+ WithMany
对,例如
modelBuilder.Entity<Food>()
.HasMany(left => left.Menus)
.WithMany(right => right.Foods)
.UsingEntity(join => join.ToTable("TheDesiredName"));
被接受的答案遗漏了一个我不得不努力解决的重要部分。
首先,您需要安装软件包
Microsoft.EntityFrameworkCore.Relational
然后你可以在你的 OnModelCreating
覆盖方法中添加以下内容
modelBuilder.Entity<Food>()
.HasMany(left => left.Menus)
.WithMany(right => right.Foods)
.UsingEntity(join => join.ToTable("NameYouWish"));