我们的 ASP.NET Core Web 应用程序使用 Azure SQL 数据库。但是,我们的测试使用 Microsoft.EntityFrameworkCore.Sqlite。
我们最近为审计表添加了一些计算列以提高搜索速度,这些列在 EF Core 中的配置如下:
private void ConfigureAudit(EntityTypeBuilder<Audit> builder)
{
builder.Property(p => p.KeyQuoteID).HasComputedColumnSql("CAST(NULLIF(JSON_VALUE(KeyValues, '$.QuoteID'), '') AS int)");
}
这在我们使用 Azure SQL 数据库的测试环境中效果很好,但是当我们尝试在 sqlite 中创建我们的数据库时,我们所有的测试都失败了。测试抛出以下错误:
<块引用>Microsoft.Data.Sqlite.SqliteException:SQLite 错误 1:'没有这样的函数:JSON_VALUE'。
我看到 sqlite 有 extensions to add support for JSON_VALUE,但我不知道如何将它们与 Microsoft.EntityFrameworkCore.Sqlite 一起使用。
我们有哪些选择?有没有办法让该扩展与 Microsoft.EntityFrameworkCore.Sqlite 一起使用?或者有什么不同的方法?