c# - 如何在 LINQ 中的列上使用 DATEADD - LINQ 无法识别 DateAdd

标签 c# linq

我正在尝试使不到 30 天前回复的友谊请求无效。

var requestIgnored = context.Request
    .Where(c => c.IdRequest == result.IdRequest 
             && c.IdRequestTypes == 1 
             && c.Accepted == false 
             && DateTime.Now <= (((DateTime)c.DateResponse).AddDays(30)))
   .SingleOrDefault();

c.DateResponseDateTime? 类型。我遇到的错误是:

LINQ does not recognize the command .AddDays

最佳答案

编辑:如果您使用的是 EntityFramework >= 6.0,请使用 DbFunctions.AddDays .对于旧版本的 Entity Framework ,请使用 EntityFunctions.AddDays :

var requestIgnored = context.Request
    .Where(c => c.IdRequest == result.IdRequest 
             && c.IdRequestTypes == 1 
             && c.Accepted == false 
             && DateTime.Now <= DbFunctions.AddDays(c.DateResponse, 30))
   .SingleOrDefault();

关于c# - 如何在 LINQ 中的列上使用 DATEADD - LINQ 无法识别 DateAdd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371798/

相关文章:

c# linq to xml 列表

c# - 在 ORM 中将 lambda 表达式转换为 SQL?

c# - 在 Entity Framework 中使用特定的 AD 帐户

c# - Orderby 不调用提供的比较器的 Compare()

C# 嵌套标签的正则表达式

c# - linq 查询的等效 lambda 语法

c# - 避免使用一本字典的更好代码 - 区分大小写问题

c# - 连接 2 个表的测试记录

c# - 我们可以在一个表单中有多个提交类型按钮吗?

c# - ISO latin 1 字节转字符