我在this问题中解释了同样的问题。
Matt在同一篇文章中找到了一个很好的答案,这对我帮助很大。它适用于插入和更新查询。我使用了IDbCommandTreeInterceptor和Ignored ValidFrom和ValidTo列。
现在我试图查询一些历史数据。由于实体框架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.
Matt在他的回答中为插入和更新命令设置了子句。 我尝试使用DbQueryCommandTree为查询设置相同的子句,但DbQueryCommandTree没有SetClauses命令。
非常感谢任何帮助。
答案 0 :(得分:1)
在SQL“选择”查询中,您需要包括VehicleSets类中的所有字段...“ ID”和“名称”字段中的appart,您至少需要有一个开始日期和结束日期(保存时态数据...)。
*(我知道这是一个较晚的答复,但可能会对其他人有所帮助)*