【发布时间】:2015-04-13 16:47:49
【问题描述】:
简单地说,这是可行的:
Database db = DatabaseWrapper.GetDatabase();
string dd = e.ParsedData.Date.ToString("yyyyMMdd");
var todaysflights = db.Flights.GetList(x => x.ScheduleDateTime.Contains("20150413")).ToList();
但事实并非如此,
Database db = DatabaseWrapper.GetDatabase();
string dd = e.ParsedData.Date.ToString("yyyyMMdd");
var todaysflights = db.Flights.GetList(x => x.ScheduleDateTime.Contains(dd)).ToList();
这是在事件处理程序中,我可以向您保证,当我将它打印到控制台时,dd 中的值正好是“20150413”。
更新:
GetList 方法工作正常,因为我从中得到了预期的结果,它返回了一个 IEnumerable:
var todaysflights = db.Flights.GetList(x => x.ScheduleDateTime.Contains("20150413")).ToList();
这是该日期的航班列表。
我使用 Contains 是因为 ScheduleDateTime 字段类似于“20150413164500”,而不是 DateTime。我也可以使用 StartsWith,但我相信这不是问题。
当我说不起作用时,我的意思是当我使用变量“dd”运行 GetList 时,我得到一个空列表,而当使用硬编码字符串“20150413”时,我得到一个包含 1868 个结果的列表。
打印到控制台时 dd 的值正好是“20150413”。
e.ParsedData 有一堆从条形码阅读器解析的数据,并且 Date 属性的类型是 DateTime,这就是为什么 e.ParsedData.Date.ToString("yyyyMMdd") 给了我想要的格式。
对于这个不完整的问题,我真的很抱歉,我写的时候刚刚下班。
感谢大家的快速回复。
更新 2
我一直在测试,下面的代码返回了预期的结果(包含一堆数据的列表):
var dd = e.ParsedData.Date.ToString("yyyyMMdd");
var todaysflights = _db.Flights.GetList(x => x.ScheduleDateTime.Contains(""+dd)).ToList();
任何人都可以说出为什么这个 ""+dd 使表达式给我预期的结果不是空列表?
谢谢
【问题讨论】:
-
如果您已验证
GetList自定义函数的输入是正确的,那么问题出在该函数上。如果您想要解决问题的答案,您必须提供GetList的代码。 -
你说它不起作用是什么意思?例外?结果不正确?
-
dd 的值是否返回您所期望的值?
-
请更具体。请提供可靠地重现问题的a good, minimal, complete code example。请比“这不是”更具体地说明问题。清楚地说明您拥有的代码是做什么的,以及它与您希望它做什么的不同之处。请阅读stackoverflow.com/help/how-to-ask,了解如何以清晰、可回答的方式提出您的问题。
-
我已经更新了我的问题,谢谢大家。
标签: c# linq entity-framework