1

私は現在、「FileStreamID」ごとに複数のレコードを持っていますが、最新の「リクエスト日」に基づいて1つの異なるレコードを取得したいだけです

ここに私が今持っているものがあります:

 var resultx = from v in ctx.vEmailSents
                             where v.Lab_ID == 44
                                 && v.UploadDate >= this.BeginDate
                             select new
                             {

                                 FileStreamID = v.FileStream_ID,
                                 UploadDate = v.UploadDate,
                                 RequestDate = v.DateSent,
                                 TypeDesc = v.TypeDesc
                             };

そして今、私は約33件のレコードを取得しています(ただし、取得できるのは12件だけです)

ファイルストリーム ID の個別の行のみを提供するように変更するにはどうすればよいですか?

4

2 に答える 2

4

vEmailSentオブジェクトを次のようにグループFileStream_ID化し、各グループ アイテムから最新の日付を選択します。

 var resultx = from v in ctx.vEmailSents
               where v.Lab_ID == 44
                     && v.UploadDate >= this.BeginDate
               group v by v.FileStream_ID into g
               select g.OrderByDescending(x => x.DateSent)
                       .FirstOrDefault() into lastV
               select new {
                      FileStreamID = lastV.FileStream_ID,
                      UploadDate = lastV.UploadDate,
                      RequestDate = lastV.DateSent,
                      TypeDesc = lastV.TypeDesc                          
               };
于 2012-12-21T15:51:03.453 に答える
0
var results = resultx
    .GroupBy(x => x.FileStreamID)
    .Select(g => g.OrderByDescending(x => x.RequestDate).First());
于 2012-12-21T15:52:10.733 に答える