ASP.NET MVC 3基础,试图获取符合特定条件的所有元素的列表
本文关键字:特定条件 列表 元素 获取 MVC NET 基础 ASP | 更新日期: 2023-09-27 18:26:19
我是MVC的新手,但在寻找如何做一些基本事情的信息时遇到了困难,所以我放弃了搜索,决定只询问一下。
基本上,我有一个MVC3网站的开始,它将举办各种比赛。我想简单地显示一个比赛列表,其中比赛的结束日期大于当前日期。
我的竞赛模型定义为:
public class Contest
{
public int ContestId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public Boolean Published { get; set; }
public virtual ICollection<Submission> Submissions { get; set; }
public virtual ICollection<Tab> Tabs { get; set; }
}
在我的控制器中,我目前正在使用:
ViewBag.CurrentContests = db.Contests.ToList();
我只是想知道如何将结果筛选为那些尚未"过期"的结果。这似乎是最基本的事情,但也许我只是找不到合适的地方。我找到的所有教程要么使用Find()
方法按id查找特定行,要么只返回所有行。
您可以对实体使用一些linq:
db.Contests.Where(c=> c.End > DateTime.Today).ToList();
注意:在进行日期/时间比较时,您可能会遇到问题,因为实体框架将生成SQL来比较日期和时间。
如果你这样做了,你会使用EntityFunctions.TruncateTime来修复这个问题,如下所示:
db.Contests
.Where(c=>
EntityFunctions.TruncateTime(c.End) >
EntityFunctions.TruncateTime(DateTime.Today))
.ToList();