我的 LINQ 查询返回了一些奇怪的结果。
LINQ 查询(返回不正确的结果):
IEnumerable<PART_EVENTS> parts = db.PART_EVENTS
.Where(p => p.OP == op.NCM_DB_NAME && p.Timestamp > tempBegin && p.Timestamp <= tempEnd)
.OrderBy(p => p.PART_ID_NUM)
.ThenBy(p => p.Timestamp)
.ToList();
在 Visual Studio 调试器中返回的结果为每个唯一的 Part ID 显示相同的时间戳,但在 SQL Developer 或查询窗口(在服务器资源管理器中)中的直接查询显示不同的时间戳(实际上,每一行的时间戳应该不同。)
SQL 查询(返回正确的结果):
select *
from PART_EVENTS
where OP = 'OP20B'
AND "Timestamp" > to_date('11/28/2012 07:00 am', 'mm/dd/yyyy hh:mi am')
AND "Timestamp" <= to_date('11/28/2012 10:58 am', 'mm/dd/yyyy hh:mi am')
order by part_id_num, "Timestamp"
我已经尝试了很多方法来纠正这个问题并且已经解决了 2 天,但我不知道我做错了什么,或者 EF 生成的 SQL 是否有问题。
任何建议将不胜感激。谢谢你。