全局 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";
}
我们正在使用 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";
}