How to use DATEADD over column in LINQ - DateAdd is not recognized by LINQ

前端 未结 2 616
遇见更好的自我
遇见更好的自我 2020-12-17 08:23

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

var requestIgnored = context.Request
    .Where(c => c.IdReques         


        
相关标签:
2条回答
  • 2020-12-17 08:59

    You might try this:

    var thirtyDaysAgo = DateTime.Now.AddDays(-30);
    var requestIgnored = context.Request
        .Where(c => 
            c.IdRequest == result.IdRequest && 
            c.IdRequestTypes == 1 && 
            c.Accepted == false && 
            c.DateResponse.HasValue &&
            thirtyDaysAgo <= c.DateResponse.Value)
        .SingleOrDefault();
    
    0 讨论(0)
  • 2020-12-17 09:04

    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();
    
    0 讨论(0)
提交回复
热议问题