entity-framework-core - 如何从 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
默认值。)
解决方案
推荐阅读
- c - “%1$d”输出是什么意思?
- azure - 使用 powershell 配置 NSG 规则 - 导入 ASG 时遇到问题
- c# - 给定对结构的托管引用,如何在偏移量处获取对字段的托管引用?
- wordpress - 有没有办法在 WordPress 中为每个客户端创建自定义 URL
- c# - LINQ:比较两个数据表中的特定值
- php - Laravel/Mysql - 处理大数据
- typescript - Firebase Functions.EventContext 在更新后变得未定义
- extjs - 如何在 Sencha Ext.js 通用应用程序中查看现代视图
- java - 无法在 javafx 中链接 fxml 和控制器文件变量
- c# - 如果另一个项目空了,则显示 1 个项目(角度 6 材料)