entity framework 核心 2 没有看到 sqlite 扩展

entity framework core 2 doesn't see sqlite extensions

所以在 entity framework 1.1 中我有这样的实体

 modelBuilder.Entity<Resolution>()
      .Property(r => r.Created)
      .ValueGeneratedOnAddOrUpdate()
      .ForSqliteHasColumnType("Timestamp")            
      .ForSqliteHasDefaultValueSql("CURRENT_TIMESTAMP");

 modelBuilder.Entity<Resolution>()
      .Property(r => r.Updated)
      .ForSqliteHasColumnType("Timestamp")
      .IsRequired();

效果很好。升级到 .net core 2.0 和 entity framework 2.0 后

 .ForSqliteHasColumnType("Timestamp")

似乎不​​再可用。事实上,所有 "ForSqlite*" 函数都不存在。

我将 "Microsoft.EntityFrameworkCore.Sqlite" 升级到了 2.0。我有

using Microsoft.EntityFrameworkCore;

他们改变了什么吗?除了 sql 提供程序不向后兼容 .NET Core 1.1 之外,我似乎在文档中找不到任何内容。

谢谢

我没有找到任何关于更改的地方。但您可以在 EF Core 2.0 中使用以下代码。

.HasDefaultValueSql("CURRENT_TIMESTAMP");

昨天将测试项目升级到 EF Core 2.0 后,我遇到了类似的问题,在我的例子中,数据库不是 SQLite,而是 MS SQL Server。

我不得不更换

 b.Property(e => e.StartDate).IsRequired().ForSqlServerHasColumnType("Date"); 
 b.Property(e => e.LastModified).IsRequired().ForSqlServerHasColumnType("SmallDateTime");

与:

 b.Property(e => e.StartDate).IsRequired().HasColumnType("Date"); 
 b.Property(e => e.LastModified).IsRequired().HasColumnType("SmallDateTime");

但在那之后它又开始工作了。我通过重新创建数据库并在 MS SQL Server Management Studio 中目视检查新创建的列定义来测试它。