0

我在这个问题中解释了同样的问题。

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 命令。

任何帮助将不胜感激。

4

1 回答 1

1

在 SQL“选择”查询中,您需要包括您在 VehicleSets 类中拥有的所有字段...除了“ID”和“名称”字段,您需要至少有一个开始日期和结束日期(包含时间数据...)。

*(我知道这是一个迟到的回复,但它可能对其他人有所帮助)*

于 2018-09-04T18:46:11.640 回答