Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我如何使用linq和EF从SQL数据库中进行选择,其中ExpiryDate是从今天起使用DateDiff函数过期30天_C#_Linq_Entity Framework - Fatal编程技术网

C# 我如何使用linq和EF从SQL数据库中进行选择,其中ExpiryDate是从今天起使用DateDiff函数过期30天

C# 我如何使用linq和EF从SQL数据库中进行选择,其中ExpiryDate是从今天起使用DateDiff函数过期30天,c#,linq,entity-framework,C#,Linq,Entity Framework,我正在尝试使用EF和Linq从SQL db中获取项目,其中成员资格日期过期此日期在db中已经预先确定,我想使用C中的DateDiff函数获取过期日期在30天内的项目,我如何才能做到这一点我对C还是新手,以下是我到目前为止的资料 using (var db = new DbContext()) { // this is where I want to filter the list to get only members with an // expiration date is

我正在尝试使用EF和Linq从SQL db中获取项目,其中成员资格日期过期此日期在db中已经预先确定,我想使用C中的DateDiff函数获取过期日期在30天内的项目,我如何才能做到这一点我对C还是新手,以下是我到目前为止的资料

using (var db = new DbContext())
{
    // this is where I want to filter the list to get only members with an
    // expiration date is 30 days from today
    List<Membership> membership = db.Membership.Where(m => m.ExpiryDate... 

    foreach(var member in members)
    {
        DoWork();
    }
}
然后我在这里做我需要的其他事情,有没有关于归档这种过滤的帮助?

您可以尝试:

var membership = db.Memberships.Where(m => SqlFunctions.DateDiff(m.ExpiryDate, /*[other parameters]*/))
确保不要在其他参数中使用方法。如果需要DateTime.Today.AddDays30,请在linq to entities中使用它之前将其声明为变量


但是,基于您的问题,我认为您并不真正需要DateDiff函数。您只需在linq to entities查询中将ExpireyDate与targetDate=DateTime.Today.AddDays30进行比较。

您只需在C中预先计算所需的值,然后在SQL中进行简单比较:

var expiryDate = DateTime.Today.AddDays(30);
var memberships = db.Membership.Where(m => m.ExpiryDate > expiryDate);