2016-08-15 77 views
0

我想通过datetime从表中读取。如果我用这个:EF 6.0通过日期时间获取

(from x in Db.Table where x.Date.Value == DateTime.Now select x).ToList(); 

我的代码抛出EntityCommandExecutionException:同时给予参数信息OLE DB 提供商发生

故障

所以我用这个:

(from x in Db.Table where DbFunctions.TruncateTime(x.Date) == DateTime.Now select x).ToList(); 

但它非常缓慢(约40秒)。在我的桌子里有大约500 000条记录。

var now = DateTime.Now; 

var list = Db.Table.Where(e=>e.Date == now).ToList(); 

或者:

感谢意见

+0

如果我执行这个查询'SELECT * FROM表,其中日期=' 2016-08-15''在SQL Management Studio中,它速度非常快(2秒) – bluray

+0

这只是一个错字,在我的代码中正确 – bluray

+2

您是否尝试过在b上使用'DbFunctuins.TruncateTime'其他方面呢?例如'DbFunctions.TruncateTime(x.Date)== DbFunctions.TruncateTime(DateTime.Now)' –

回答

0

现在财产,然后再查询类似下面的定义

(from x in Db.Table where x.Date == now select x).ToList(); 
+0

这是抛出EntityCommandExecutionException:向OLE DB提供程序提供参数信息时发生故障... – bluray