2016-06-02 3 views
0

私はWeb APIプロジェクトで作業します。エンティティフレームワーク6を使用します。最新の日付とunitIdで行を取得するためにLinqToEntityを書く必要があります。例えばLinqToEntityに最新の日付とunitIdで行を取得するように書きます。

:ここ

が私のテーブルです:私が試したものを

Id|UnitId | NumberP | DateMeasure 
    3|48  |num3  |2011-08-20 13:10:18.000 
    4|85  |num4  |2015-11-20 14:10:22.000 
    5|14  |num5  |2010-05-20 13:11:38.000 
    6|32  |num2  |2010-05-20 13:12:38.000 

ここ:

Id|UnitId | NumberP | DateMeasure 
    1|14  |num1  |2008-01-20 13:10:22.000 
    2|32  |num2  |2010-05-20 13:11:38.000 
    3|48  |num3  |2011-08-20 13:10:18.000 
    4|85  |num4  |2015-11-20 14:10:22.000 

    5|14  |num5  |2010-05-20 13:11:38.000 
    6|32  |num6  |2010-05-20 13:12:38.000 
    7|85  |num7  |2014-11-20 17:20:32.000 

そして、ここでは、私がLinqToEntityを使用して、テーブルから取得する必要がありますレコードです

var t2 = from s in unitOfWork.SensorsMeasure.GetAll() 
       group s by s.SensorUnitId into g 
       select new 
       { 


       }; 

af私はそれをグループ化してどのように私は日付でそれを注文することができますか?

希望の結果を得るためにLinqToEntityクエリを作成するにはどうすればよいですか?

+0

はかなり標準のサウンド - UnitId' 'でグループ、DateMeasure''によって各グループを降順と第一を取ります素子。問題は何ですか? –

+0

Ivan、私の質問を更新することができますか?私はUnitIdによってiyemをグループ化しますが、どのようにして日付で注文できますか。 – Michael

答えて

1

はあなたが興味のある各グループの要素を取得するためにlet clauseを使用することができます。

var t2 = from s in unitOfWork.SensorsMeasure.GetAll() 
     group s by s.SensorUnitId into g 
     let latest = g.OrderByDescending(s => s.DateMeasure).FirstOrDefault() 
     select new 
     { 
      UnitId = g.Key, 
      NumberP = latest.NumberP, 
      DateMeasure = latest.DateMeasure 
     }; 
+0

イワン、助けてくれてありがとう! – Michael

関連する問題