全局 table 前缀为 Entity Framework 7 (rc1)

Global table prefix with Entity Framework 7 (rc1)

我们正在使用 ASP.NET 5 的 RC1 版本和新的 Entity Framework 7,我希望数据库中的 table 名称以名称为前缀模型所在的命名空间。

我知道如何在以前的 Entity Framework 版本中执行此操作(感谢 this SO question),但我不知道如何在新版本中执行此操作。我浏览了文档,用谷歌搜索并在源代码中查找,但无济于事。

我在 EF6 中做了什么:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Types().Configure(entity => entity.ToTable($"{entity.ClrType.Namespace?.Replace('.', '-')}_{entity.ClrType.Name}s"));

    base.OnModelCreating(modelBuilder);
}

如何使用 EF7 执行相同的操作?这可能是目前还没有的东西之一吗?

截至今天,Dic,2015 年 9 日,EF7 自定义约定问题仍未解决:

https://github.com/aspnet/EntityFramework/issues/214

如果您访问那个 link,您可以深入了解更多详细信息。

直接操作模型在OnModelCreating结束时做:

foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
    entity.Relational().TableName =
        $"{entity.ClrType.Namespace?.Replace('.', '-')}_{entity.ClrType.Name}s";
}