【发布时间】:2018-03-11 21:14:06
【问题描述】:
我希望我的域类名与我的 db 表名相匹配(没有复数形式)。
在 EF Core 1.1 中,我使用以下代码来执行此操作:
public static void RemovePluralisingTableNameConvention(this ModelBuilder modelBuilder)
{
foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes())
{
entityType.Relational().TableName = entityType.DisplayName();
}
}
在 EF Core 2.0 中,此代码无法编译,因为 Relational() 不是 IMutableEntityType 上的方法。
无论如何,在 EF Core 2.0 中,他们添加了 IPluralizer,记录在这里:
没有太多示例可以展示如何实现与我以前相同的行为。关于如何在 EF Core 2 中删除复数的任何线索?
【问题讨论】:
-
EF Core 2.0 的约定是对表使用 DbSet 的名称。如果您从未为表指定 DbSet,则 EF Core 将使用类名作为表名。显然,如果您在 Fluent 映射中使用 ToTable 指定表名,这一切都会被忽略。
标签: c# ef-code-first entity-framework-core