EF Core 5.0 中的中断性变更Breaking changes in EF Core 5.0
API 和行为的下列更改有可能导致现有应用程序在更新到 EF Core 5.0.0 时中断。
摘要Summary
中断性变更 | 影响 |
---|---|
从 SQLite NTS 扩展中删除了 HasGeometricDimension 方法 | 低 |
从 SQLite NTS 扩展中删除了 HasGeometricDimension 方法Removed HasGeometricDimension method from SQLite NTS extension
旧行为
HasGeometricDimension 过去用于在几何列上启用其他维度(Z 和 M)。 但是,之前它只影响数据库创建。 不需要指定它来查询具有其他维度的值。 之前,在插入或更新具有其他维度的值时,它也无法正常工作(请参见 see #14257)。
新行为
要能够插入和更新具有其他维度(Z 和 M)的几何值,需要将维度指定为列类型名称的一部分。 这与 SpatiaLite 的 AddGeometryColumn 函数的基本行为匹配度更高。
为什么
在列类型中指定维度后,不需要使用 HasGeometricDimension,该方法也很多余,因此我们已将它彻底删除。
缓解措施
使用 HasColumnType
指定维度:
modelBuilder.Entity<GeoEntity>(
x =>
{
// Allow any GEOMETRY value with optional Z and M values
x.Property(e => e.Geometry).HasColumnType("GEOMETRYZM");
// Allow only POINT values with an optional Z value
x.Property(e => e.Point).HasColumnType("POINTZ");
});