Entity Framework 7(rc1)のグローバルテーブルプレフィックス

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

質問

私たちは新しいEntity Framework 7でASP.NET 5のRC1リリースを使用しています。データベースにテーブル名を付けて、モデルが存在する名前空間の名前を接頭辞として使用したいと考えています。

私は以前のバージョンのEntity Frameworkでこれを行う方法を知っていますが( このSOの質問のおかげで)、私は新しいバージョンで同じことをする方法を理解できません。私はドキュメントを見て、Googledし、ソースコード内の私の頭を無駄に、突っ込んだ。

私が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の最後に、モデルを直接操作することでそれを行います:

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
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ