2016-08-15 67 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