Entity framework EF 6.0按日期时间获取

Entity framework EF 6.0按日期时间获取,entity-framework,Entity Framework,我想在datetime之前阅读表格。如果我使用这个: (from x in Db.Table where x.Date.Value == DateTime.Now select x).ToList(); (from x in Db.Table where DbFunctions.TruncateTime(x.Date) == DateTime.Now select x).ToList(); 我的代码引发EntityCommandExecutionException: 向OLE DB提供参数

我想在datetime之前阅读表格。如果我使用这个:

(from x in Db.Table where x.Date.Value == DateTime.Now select x).ToList();
(from x in Db.Table where DbFunctions.TruncateTime(x.Date) == DateTime.Now  select x).ToList();
我的代码引发EntityCommandExecutionException:

向OLE DB提供参数信息时出错 提供者

所以我用这个:

(from x in Db.Table where x.Date.Value == DateTime.Now select x).ToList();
(from x in Db.Table where DbFunctions.TruncateTime(x.Date) == DateTime.Now  select x).ToList();
但是速度非常慢(大约40秒)。在我的表格中大约有50万条记录


感谢您的建议

先定义now属性,然后按如下方式查询:

var now = DateTime.Now;

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


如果我在SQL Management studio中执行此查询
select*from Table where Date='2016-08-15'
,速度非常快(2秒),这只是一个输入错误,在我的代码中,您是否已正确尝试在两侧使用
DbFunctuins.TruncateTime
?例如
DbFunctions.TruncateTime(x.Date)=DbFunctions.TruncateTime(DateTime.Now)
是的,速度也非常慢。。EF生成此查询:
SELECT*FROM(SELECT*FROM[dbo].[Table]AS[Table])AS[Extent1],其中((convert(datetime2,convert(varchar(255),[Extent1].[Date],102),102))=(convert(datetime2,convert(varchar(255),[Extent1].[Date],102),102))或((convert(datetime2,convert(varchar(255),[extt1].[Date],102),102),102)是NULL)和(convert(datetime2,convert(varchar(255),SysDateTime(),102),102)是NULL))
这是throw EntityCommandExecutionException:向OLE DB提供程序提供参数信息时发生故障。。。