新版本的Devart dotConnect for SQLite包含对 Entity Framework Core 支持的重大改进,大量改进了 Entity Framework Core Code-First Migrations,并添加了对以前不支持的操作的支持。此外,我们支持更多.NET 数据类型的映射和LINQ 查询转换到SQL 的扩展功能。
LINQ to Entity 改进
SQLite 的 dotConnect 现在支持将以下 LINQ 功能转换为 EF Core 3 和 EF Core 5 的 SQL:
String类的静态 IsNullOrWhiteSpace() 方法
DateTime类的静态 Today 属性和实例 DayOfWeek 和 Ticks 属性
Math类的以下静态方法:Abs()、Round()、Truncate()、Floor()、Ceiling()、Max()、Min()、Pow()、Sqrt()、Log()、Log10 (), Sin(), Cos(), Tan(), Asin(), Acos(), Atan()
Uri 数据类型映射
对于 Entity Framework Core 3 和 5,dotConnect for SQLite 现在支持将 Internet/Intranet System.Uri类型映射到 SQLite 'text' 数据类型。
IPAddress 和 PhysicalAddress 类型映射
对于 Entity Framework Core 5,dotConnect for SQLite 支持将网络类型 System.Net.IPAddress 和 System.Net.NetworkInformation.PhysicalAddress 映射到 SQLite 'text' 数据类型。
代码优先迁移改进
SQLite 数据库引擎对 ALTER TABLE 操作有明显的架构限制。这就是 dotConnect for SQLite 不支持许多 EF Core Code-First Migrations 操作的原因。新的 dotConnect for SQLite 版本通过创建新表并将数据从旧表复制到它的解决方法提供对更多操作的支持:
更改列
重命名列(适用于 SQLite 3.24 或更低版本)
删除列(适用于 SQLite 3.34 或更低版本)
添加外键
删除外键
添加主键
删除主键
两种新的操作,重命名列和删除列,在两种不同的模式下受支持:
如果 SQLite 是 3.25/3.35 或更高版本,则使用本机 SQLite ALTER TABLE RENAME COLUMN 和 ALTER TABLE DROP COLUMN 命令,因为这些版本支持这些命令。
如果 SQLite 版本较低,则使用重新创建表的解决方法。
让我们考虑以下带有 Dept 和 Emp 类的示例:
使用以下映射:
在我们添加并应用迁移之后,会生成以下 DDL:
让我们将字符串字段长度从 100 增加到 200。
让我们使用单个 AlterColumn 操作添加迁移。
应用迁移后,会生成以下 DDL:
结论
我们很高兴为SQLite提供了具有新功能的更新dotConnect ,我们将进一步改进提供程序中对 Entity Framework Core 的支持。我们正在等待您对进一步改进和新功能的反馈和建议。同时,我们的首要功能是 Entity Framework Core 6 支持及其所有新功能以及对新 .NET 6 类型的支持,如 DateOnly 和 TimeOnly。
京ICP备09015132号-996 | 网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155
© Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室