如何使用 DateDiff 函数从使用 linq 和 EF 的 SQL 数据库中进行选择,其中 ExqueryDate
本文关键字:数据库 SQL 行选 选择 ExqueryDate 其中 EF 函数 DateDiff 何使用 linq | 更新日期: 2023-09-27 18:33:59
我正在尝试使用 EF 和 Linq 从 SQL 数据库中获取成员资格日期到期的项目(此日期已在数据库中预先确定(,我想使用 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();
}
}
然后从这里我做我还需要什么,对存档这种过滤有什么帮助吗?
您只需在 C# 中预先计算所需的值,然后在 SQL 中进行简单的比较:
var expiryDate = DateTime.Today.AddDays(30);
var memberships = db.Membership.Where(m => m.ExpiryDate > expiryDate);
你可以试试:
var membership = db.Memberships.Where(m => SqlFunctions.DateDiff(m.ExpiryDate, /*[other parameters]*/))
确保不要在其他参数中使用方法。如果需要 DateTime.Today.AddDays(30(,请在 linq to 实体中使用它之前将其声明为变量。
但是,根据您的问题,我认为您并不真正需要DateDiff函数。您只需要在 linq to 实体查询中将 ExpiryDate 与 targetDate = DateTime.Today.AddDays(30( 进行比较。