如何使用EF 4获取当前日期过去两天内的所有记录?

时间:2011-09-21 10:22:10

标签: c# linq entity-framework entity-framework-4

C#中的EF 4。

我有我的查询,目前我可以按当前日期过滤结果(只是考虑时间的日期)。

我需要将结果从过去两天过滤到当前日期(不知道怎么做)。

我在我的查询currenteDate - 2中尝试过,但没有成功。

你能举个例子吗?感谢您抽出宝贵时间。

DateTime currenteDate = DateTime.UtcNow.Date;

                var contents = from cnt in context.CmsContents
                               where cnt.IsPublished == true & cnt.IsDeleted == false & cnt.Date == currenteDate
                               orderby cnt.ContentId descending
                               select new { cnt.ContentId, cnt.Title, cnt.TitleUrl, cnt.Date, cnt.TypeContent };

2 个答案:

答案 0 :(得分:8)

要更改当前日期,您需要使用currenteDate.AddDays(-2)。并使用>=代替==来获取所有记录,直到最后一个记录为止

DateTime currenteDate = DateTime.UtcNow.Date.AddDays(-2);

var contents = from cnt in context.CmsContents
                   where cnt.IsPublished == true & cnt.IsDeleted == false & cnt.Date >= currenteDate
                   orderby cnt.ContentId descending
                   select new { cnt.ContentId, cnt.Title, cnt.TitleUrl, cnt.Date, cnt.TypeContent };

答案 1 :(得分:0)

使用DateTime-object中的compare方法:

cnt.Date.CompareTo( DateTime.Now.AddDays( -2 ) ) >= 0