如何通过在LINQ列中使用DATEADD - 使用DateAdd不被认可LINQ [英] How to use DATEADD over column in LINQ - DateAdd is not recognized by LINQ

查看:913
本文介绍了如何通过在LINQ列中使用DATEADD - 使用DateAdd不被认可LINQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想是无效被reponded不到30天前友谊的请求。

  VAR requestIgnored = context.Request 
。凡(C => c.IdRequest == result.IdRequest
和;&安培; c.IdRequestTypes == 1
和;&安培; c.Accepted ==虚假
和;&放大器; DateTime.Now< =(((DATETIME)c.DateResponse).AddDays(30)))
.SingleOrDefault();



c.DateResponse 的类型为的DateTime?。我遇到的错误是:




LINQ不能识别命令.AddDays



解决方案

编辑:如果您正在使用的EntityFramework> = 6.0,使用的 DbFunctions.AddDays 。对于旧版本的实体框架,使用 EntityFunctions.AddDays

  VAR requestIgnored = context.Request 
。凡(C => c.IdRequest = = result.IdRequest
和;&安培; c.IdRequestTypes == 1
和;&安培; c.Accepted ==虚假
和;&放大器; DateTime.Now< = DbFunctions.AddDays( c.DateResponse,30))
.SingleOrDefault();


I am trying to invalidate requests of friendship that were reponded less than 30 days ago.

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.DateResponse is of type DateTime?. The error I am having is :

LINQ does not recognize the command .AddDays

解决方案

Edit: If you're using EntityFramework >= 6.0, use DbFunctions.AddDays. For older versions of Entity Framework, use 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();

这篇关于如何通过在LINQ列中使用DATEADD - 使用DateAdd不被认可LINQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆