希望在EF Core中获取元数据,以处理对象的映射。属性到数据库表&列。
这些映射在DBContext.cs OnModelCreating()方法中定义,使用.ToTable()映射表,通过.Property.HasColumnName()映射列。
但是我没有在......返回的实体类型下看到这个元数据。
IEnumerable<IEntityType> entityTypes = [dbContext].Model.GetEntityTypes();
这些元数据是否可在EF Core中的任何位置使用?
答案 0 :(得分:12)
这些元数据是否可在EF Core中的任何位置使用?
是的。除了属性之外,还要检查方法(GetXXX
,FindXXX
等)。并特别注意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软件包。