【发布时间】:2018-03-31 22:44:15
【问题描述】:
在使用 EF 6.1+ 时,有时我们需要添加或删除现有的竞争。代码看起来或多或少像:
public class MyContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.AddFromAssembly(Assembly.GetExecutingAssembly());
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
base.OnModelCreating(modelBuilder);
}
}
如何在 EF 核心中做同样的事情? Modelbuilder 没有 Conventions 属性:(
【问题讨论】:
-
Entity Framework Core 约定在哪里? 未来的某个地方(查看 EF Core 路线图和积压工作)。
-
计划在 3.0 版本中发布,请参阅github.com/aspnet/EntityFrameworkCore/issues/214
-
对于 .NET Core 3.1 -- Answer-One Answer-Two
-
对于 EF Core 5 和单数而不是复数的表名约定,请参见此处stackoverflow.com/a/65585664/1769622