【发布时间】:2014-09-16 16:55:02
【问题描述】:
我正在使用存储库模式来查询 SQL,以根据通过 Web api 传入的日期获取记录。例如,查询字符串为 date=2014-09-16。当我的存储库收到此日期时,时间会自动设置为 12:00:00,因为没有通过。我只对像这样匹配数据库中的日期感兴趣:
public IQueryable<Instance> GetInstances(DateTime date) {
return DBContext.Instances.Where(x => x.StartDateTime == date).OrderBy(x => x.StartDateTime).AsQueryable();
}
问题是找不到匹配项,因为数据库中的记录由于时间部分的原因不是完全匹配,即使该日期存在记录。在上述示例中获得匹配的最佳方法是什么?
【问题讨论】:
-
那么你为什么不能使用专门设计的方法来做你想做的事呢?
-
对不起,新手。我尝试添加 System.Data.Entity 然后调用 DbFunctions 但我收到一个错误,它在当前上下文中不存在。
-
您使用的是什么类型的查询提供程序?您使用的是 EF、linq to SQL 还是其他?您需要使用特定于您正在使用的查询提供程序的函数。
-
提供您正在使用的实际查询以及您收到的确切错误消息。而不是说你不能使用它,你应该解释你在使用它时遇到了什么问题,因为你没有理由禁止人们使用它,而是你需要弄清楚如何正确使用它.