如何使用EntityFrameworkCore.TemporalTables.Extensions



我正在尝试使用EF Core与时态表- SQL Server我发现了这些扩展: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(日期)
  • AsTemporalFrom (startDate可以endDate)
  • AsTemporalBetween (startDate可以endDate)
  • AsTemporalContained (startDate可以endDate)

从EF Core 6.0 RC1开始,实体框架核心支持时态表。

你可以在这里了解更多的功能。

最新更新