在EF Core中獲取元數據:表和列映射

entity-framework-core

希望在EF Core中獲取元數據,以使用對象和屬性到數據庫表和列的映射。

這些映射在DBContext.cs OnModelCreating()方法中定義,使用.ToTable()映射表,並通過.Property.HasColumnName()定義列。

但我沒有看到由...返回的實體類型下的這個元數據

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

這個元數據是否可以在EF Core中找到?

一般承認的答案

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
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow