Dar*_*ren 4 linq entity-framework
假设您有以下linq表达式:
from o in salesEntities.Orders where o.OrderDate < DateTime.Today.AddDays(-20) select o
Run Code Online (Sandbox Code Playgroud)
实体框架不知道如何将DateTime.Today.AddDays(-20)转换为Entity SQL表达式,并且您收到以下错误:
LINQ to Entities无法识别方法'System.DateTime AddDays(Double)'方法,并且此方法无法转换为商店表达式.
所以这是我的问题:有没有办法让Linq to Entities评估lambda表达式的一部分并替换一个常量值,而不必声明一个局部变量来保存它?
LINQ-to-Entities可以处理本地值,但不能处理本地表达式.您的代码将适用于此次微小更改:
var pastDate = DateTime.Today.AddDays(-20);
from o in salesEntities.Orders where o.OrderDate < pastDate select o
小智 5
使用EntityFunction更改表达式以添加如下天数:
var result =
(
from o in salesEntities.Orders
where o.OrderDate < System.Data.Objects.EntityFunctions.AddDays(DateTime.Today,-20)
select o
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5354 次 |
| 最近记录: |