2016-05-30 12 views
1

SQLテーブルにDateMeasureという名前のdatetime列があります。Linqをエンティティに使用して、列から最大の日付と時刻を取得するにはどうすればよいですか?

私の.NETプロジェクトでエンティティフレームワーク6を使用しています。ここで

は、私のテーブルの例である:

Id   | NumberP | TrackNumber | DateMeasure 
28092|15240000|1.0.7.1782|2009040004731|2008-01-20 13:10:22.000 
28094|61615000|1.0.7.1782|2009040007696|2010-05-20 13:11:38.000 
28095|95317000|1.0.7.1782|2009040007695|2011-08-20 13:10:18.000 
28101|15240000|1.0.7.1782|2009040004740|2015-11-20 14:10:22.000 
28103|61615000|1.0.7.1782|2009040007690|2015-11-20 14:11:38.000 
28104|95317000|1.0.7.1782|2009040007710|2009-02-20 14:10:18.000 

私はエンティティへのLINQの助けを借りて、テーブルから取得したい行:

28103|61615000|1.0.7.1782|2009040007690|2015-11-20 14:11:38.000 

どのように私は(最新)の最大を取得することができます日付と時刻列からLinqを使用してエンティティに?

答えて

2

あなたはMax拡張子使用して、最大の日付を取得することができます:あなただけの1つのクエリでそれを行うことができ、実際に

var model = context.Table.FirstOrDefault(m => m.DateMeasure == maxDate); 

:そのエンティティを取得するために、あなたはFirstOrDefaultを使用することができます次に

var maxDate = context.Table.Max(m => m.DateMeasure); 

を:

var model = context.Table.FirstOrDefault(m => m.DateMeasure == context.Table.Max(x => x.DateMeasure)); 
+0

アルトゥーロ、それはアカウントの時間分と秒にかかりますか? – Michael

+0

@Michael:はい、すべての日付と時刻の部分です。 –

0

LinqのIQueryオブジェクトのOrderByメソッドを使用して、DateMeasure列でソートし、最初のエントリをフェッチできます。

(from s in context.Table 
     orderby s.DateMeasure descending).First() 

かと:

context.Table 
     .OrderByDescending(s => s.DateMeasure) 
     .First(); 

OrderByDescending方法はあなたにも昇順にソートするOrderByを使用することができ、降順でクエリを並べ替えます。

関連する問題