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 中目视检查新创建的列定义来测试它。
所以在 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 中目视检查新创建的列定义来测试它。