0
我有一张表,其中date
为日期时间,一个月为int
。使用实体框架计算日期?
我怎样才能与EF所有实体是
date + month_count > today's date - 7 days
表结构
id uniqueidentifier
date datetime
month_count int
我有一张表,其中date
为日期时间,一个月为int
。使用实体框架计算日期?
我怎样才能与EF所有实体是
date + month_count > today's date - 7 days
表结构
id uniqueidentifier
date datetime
month_count int
出于性能方面的考虑,您可能要考虑直接在SQL执行日期计算:
using (var dbContext = new DbContext())
{
var result = from entity in dbContext.Entities.SqlQuery(
@"SELECT * FROM entities
WHERE
DATEDIFF(d,
DATEADD(m, [month_count], [date]),
GETDATE()) > -7");
}
了解更多关于使用SQL用的EntityFramework here
另一种方法是只加载很多到内存中,并使用非SQL排序它意识到LINQ:
using (var dbContext = new DbContext())
{
var oneWeekAgo = (DateTime.Now() - TimeSpan.FromDays(7)).Date();
var result = from entity in dbContext.Entities.ToList()
where entity.Date + TimeSpan.FromMonths(entity.MonthCount)
> oneWeekAgo;
}