實體框架7的全局表前綴(rc1)

asp.net-core c# entity-framework entity-framework-core

我們正在使用帶有新Entity Framework 7的ASP.NET 5的RC1版本,並且我希望在數據庫中使用表名稱作為模型所在的命名空間的名稱前綴。

我知道如何在以前版本的Entity Framework中執行此操作(感謝這個SO問題 ),但我無法弄清楚如何在新版本中執行相同操作。我瀏覽了文檔,用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做同樣的事情?這可能是其中一個不存在的東西嗎?

一般承認的答案

通過直接操作模型在OnModelCreating結束時OnModelCreating操作:

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

熱門答案

截至今日,Dic,2015年9月,EF7自定義約定問題仍然存在:

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

如果您訪問該鏈接,則可以深入了解更多詳細信息。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow