LINQ查询在转换为SQL之前要在C#中求值吗?

LINQ查询在转换为SQL之前要在C#中求值吗?,c#,.net,entity-framework,C#,.net,Entity Framework,这很有效 DateTime dtYesterday = DateTime.Now.AddDays(-1); data = data.Where(d => d.CreatedTime <= dtYesterday); IQueryable和IEnumerable之间的区别在于前者保留了程序员(即您)编写的表达式,以将其呈现给执行查询的查询引擎(即RDBMS)。找出DateTime.Now.AddDays(-1)是一个需要计算的函数是可行的,但与使用熟悉且易于识别的语法的简单而直接的解

这很有效

DateTime dtYesterday = DateTime.Now.AddDays(-1);
data = data.Where(d => d.CreatedTime <= dtYesterday);

IQueryable
IEnumerable
之间的区别在于前者保留了程序员(即您)编写的表达式,以将其呈现给执行查询的查询引擎(即RDBMS)。找出
DateTime.Now.AddDays(-1)
是一个需要计算的函数是可行的,但与使用熟悉且易于识别的语法的简单而直接的解决方案相比,这太神奇了:

DateTime dtYesterday = DateTime.Now.AddDays(-1);
data = data.Where(d => d.CreatedTime <= dtYesterday);
DateTime dtdayed=DateTime.Now.AddDays(-1);

数据=数据。其中(d=>d.CreatedTime)这一切都取决于
IQueryable
公开的
IQueryProvider
data = data.Where(d => d.CreatedTime <= ForceEvaluate(DateTime.Now.AddDays(-1)));
DateTime dtYesterday = DateTime.Now.AddDays(-1);
data = data.Where(d => d.CreatedTime <= dtYesterday);