2012-03-01 20 views
0

私はMVCを使い慣れていますが、いくつかの基本的なことを行う方法に関する情報を見つけようとしているので、代わりに尋ねることに決めました。ASP.NET MVC 3基本情報、特定の条件に一致するすべての要素のリストを取得しようとしています

基本的に私はさまざまなコンテストを開催する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(); 

私はちょうどその避難所」だけのものに結果をフィルタリングするためにどのように思ったんだけどtはまだ満了しています。これは最も基本的なもののようですが、私はちょうど正しい場所を見ていないかもしれません。私が見つけたすべてのチュートリアルでは、Find()メソッドを使用して、idで特定の行を検索するか、すべての行を返すだけです。

あなたには、いくつかのLINQツーエンティティ使用することができます

答えて

3

:日付/時刻の比較を行う場合には、エンティティ・フレームワークは日付と時間を比較するSQLを生成しますので、あなたは問題がある可能性があります:

db.Contests.Where(c=> c.End > DateTime.Today).ToList(); 

そうした場合、あなたはこのようにこの問題を解決するためにEntityFunctions.TruncateTimeを使用します。

db.Contests 
    .Where(c=> 
     EntityFunctions.TruncateTime(c.End) > 
          EntityFunctions.TruncateTime(DateTime.Today)) 
    .ToList(); 
+0

パーフェクト、ありがとう! – Danny

関連する問題