EFコアでのメタデータの取得:テーブルとカラムのマッピング

entity-framework-core

質問

EFコアでメタデータを取得するために、データベースのテーブルとカラムに対するオブジェクトとプロパティのマッピングを操作します。

これらのマッピングは、DBContext.cs OnModelCreating()メソッドで定義され、.ToTable()でテーブルをマッピングし、.Property.HasColumnName()でカラムをマッピングします。

しかし、私はこのメタデータが返されたエンティティタイプの下に表示されません...

IEnumerable<IEntityType> entityTypes = [dbContext].Model.GetEntityTypes();

このメタデータはEFコアのどこでも利用できますか?

受け入れられた回答

このメタデータはEF Coreのどこかにありますか?

はい、そうです。プロパティに加えて、メソッド( GetXXXFindXXXなど)を調べます。そしてRelational()拡張メソッドには特に注意してください。

例えば:

foreach (var entityType in dbContext.Model.GetEntityTypes())
{
    var tableName = entityType.Relational().TableName;
    foreach (var propertyType in entityType.GetProperties())
    {
        var columnName = propertyType.Relational().ColumnName;
    }
}

Microsoft.EntityFrameworkCore.Relational Nugetパッケージをインストールする必要があります



Related

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