我正在尝试使用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开始,实体框架核心支持时态表。
你可以在这里了解更多的功能。