在EF Core中获取元数据:表和列映射

时间:2016-09-25 09:20:53

标签: entity-framework-core

希望在EF Core中获取元数据,以处理对象的映射。属性到数据库表&列。

这些映射在DBContext.cs OnModelCreating()方法中定义,使用.ToTable()映射表,通过.Property.HasColumnName()映射列。

但是我没有在......返回的实体类型下看到这个元数据。

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

这些元数据是否可在EF Core中的任何位置使用?

1 个答案:

答案 0 :(得分:12)

  

这些元数据是否可在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软件包。