实体框架7的全局表前缀(rc1)

时间:2015-12-09 13:04:00

标签: c# entity-framework asp.net-core entity-framework-core

我们使用新的Entity Framework 7使用ASP.NET 5的RC1版本,我希望在数据库中使用表名称作为模型名称空间的前缀住。

我知道如何在之前版本的Entity Framework中执行此操作(感谢this SO question),但我无法弄清楚如何在新版本中执行相同操作。我浏览了文档,用Google搜索并在源代码中戳了戳头,但没有用。

我在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做同样的事情?这可能是其中之一吗?

2 个答案:

答案 0 :(得分:4)

通过直接操作模型在OnModelCreating结尾处执行:

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

答案 1 :(得分:3)

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

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

如果您访问该链接,可以深入了解更多详情。