如何使用EntityFrameworkCore.TemporalTables.Extensions

How to use EntityFrameworkCore.TemporalTables.Extensions

我正在尝试将 EF Core 与临时表一起使用 - SQL 服务器 我发现了这些扩展: EntityFrameworkCore.TemporalTables.Extensions 看起来很不错...

然而,当我运行这段代码时:

var allItems = context.MyModel.Between(DateTime.MinValue, DateTime.UtcNow);
var listOfAllItems = allItems.ToList();

第二行抛出 Microsoft.Data.SqlClient.SqlException: 'Invalid object name 'MyModel'.'

我做错了什么吗? 或者我应该添加一些额外的设置?!

更新:当我使用简单的 LINQ 时它起作用了,所以这个例子带有结果:

var allItems = context.MyModel.ToList();

我找到了这个扩展,它运行良好,没有任何问题:

https://github.com/glautrou/EfCoreTemporalTable

所以你也可以这样做,方法是AsTemporalBetween:

var allItems = context.MyModel.AsTemporalBetween(DateTime.MinValue, DateTime.UtcNow);
var listOfAllItems = allItems.ToList();

它检索所有记录(从两个表)。

还有其他方法可用:

  • AsTemporalAll()
  • AsTemporalAsOf(date)
  • AsTemporalFrom(startDate, endDate)
  • AsTemporalBetween(startDate, endDate)
  • AsTemporalContained(startDate, endDate)

从 EF Core 6.0 RC1 开始,Entity Framework Core 现在支持时态表。

您可以进一步了解 here 的功能。