首页 > 解决方案 > 如何从 PropertyBuilder 检查和编辑实体的属性?

问题描述

我正在编写一个映射器来映射不同数据库之间的数据类型。

在设置实体后迭代它们时,OnModelCreating我需要检查之前设置的这些实体属性值,HasColumnType以便HasDefaultValueSql以通用方式更改这些设置。

如何读取和更改这些属性?

我目前将此功能用作第一种方法:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
  base.OnModelCreating(modelBuilder);

  foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
    foreach (IMutableProperty prop in entity.GetDeclaredProperties())
      if (prop.ClrType == _byteArrayType)
        modelBuilder.Entity(entity.ClrType).Property(prop.Name).HasColumnType("VARBINARY");
}

但这不是最好的方法。我需要读取(并更改)已设置的原始 SQL 值(例如XMLType数据类型或SYSDATE默认值。)

标签: entity-framework-core

解决方案


推荐阅读