我试图使不到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.DateResponse
的类型为DateTime?
。我遇到的错误是:
LINQ无法识别命令.AddDays
答案 0 :(得分:48)
修改:如果您使用的是EntityFramework&gt; = 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();
答案 1 :(得分:3)
你可以试试这个:
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();