Dotnet core 3.1 version of RelationalMetadataExtensions.Rela



我们正在dotnet core 2.0中使用RelationalMetadataExtensions读取关系数据库特定的元数据。我们计划将应用程序升级到 3.0。但是RelationalMetadataExtensions在dotnet core 3.0中是过时的。以下代码的 dotnet 核心 3.1 行为将是什么

// Following code only working for mysql.
var items = _context.Model.GetEntityTypes();
foreach (var item in items)
{
//RelationalMetadataExtensions.Relational([NotNullAttribute] this IEntityType entityType)
if (item.Relational() is RelationalEntityTypeAnnotations extensions)
{
extensions.Schema = database;
}
}

根据更新日志,您的代码将不起作用。您将需要使用平展版本。

不幸的是,问题 214 似乎仍然悬而未决。我可以看到 GetSchema 已经实现,但没有找到 SetSchema。您可以提出一个新的GitHub请求,以查看它何时(是否(到达那里。

编辑

这里有一个 SetSchema 检查。向伊万·斯托耶夫致敬。

特定于提供程序的元数据 API 更改

跟踪问题 #214

新行为

特定于提供程序的扩展方法将被展平:

IProperty.Relational().ColumnName -> IProperty.GetColumnName()IEntityType.SqlServer().IsMemoryOptimized -> IEntityType.IsMemoryOptimized()PropertyBuilder.UseSqlServerIdentityColumn() -> PropertyBuilder.UseIdentityColumn()

为什么

此更改简化了上述扩展方法的实现。

缓解措施

使用新的扩展方法。

最新更新