我在这个问题中解释了同样的问题。
Matt在同一篇文章中找到了一个很好的答案,这对我很有帮助。它适用于插入和更新查询。我正在使用 IDbCommandTreeInterceptor 和 Ignored ValidFrom 和 ValidTo 列。
现在我正在尝试查询一些历史数据。由于 Entity Framework Linq 查询无法从时态表中获取数据,我不得不使用 SQL 查询字符串。
var result = this.Context.VehicleSets.SqlQuery("SELECT Id, Name FROM T.VehicleSet FOR SYSTEM_TIME ALL WHERE Id = 1").ToList();
此行在运行时引发错误。
The data reader is incompatible with the specified 'Model.VehicleSet'. A member of the type, 'ValidFrom', does not have a corresponding column in the data reader with the same name.
马特在他的回答中为插入和更新命令设置了条款。我尝试使用 DbQueryCommandTree 为查询设置相同的子句,但 DbQueryCommandTree 没有 SetClauses 命令。
任何帮助将不胜感激。