2017-02-21 5 views
0

これは単なる研究上の質問です。しかし、構文を照会するラムダEXPを変換することができるされており、このラムダをLINQ構文に変換できるかどうかを知る必要があります。

dbContext.Items.GroupBy(x => x.MobileNo) 
         .Select(x => x.OrderByDescending(y => y.CreatedDate).First()); 

クエリ構文のサンプルをそれを行う方法:

// The below one does not work as expected 
    from x in dbContext.Items 
    group x by x.MobileNo into groupedResult 
    select groupedResult; 
+0

実際に何が起こるのか、実際に何が起こるのかを明確にしてください。 – Equalsk

+6

**メソッド構文**(最初のバージョン)ではなく、**クエリ構文**(2番目のバージョン)です。 "古い構文"のようなものはありません。 –

+0

@エスクルスク - 私が望むもの - 携帯電話番号で項目をグループ化し、グループ化された結果から最新の日付のものを取得したい。ラムダ式は期待どおりに動作します。クエリ構文を使用してこれを行う方法を知りたいだけです。 –

答えて

2

あなたがquery- and method syntaxを混在させることができます:

var query = from item in dbContext.Items 
      orderby item.CreatedDate descending 
      group item by item.MobileNo into numberGroup 
      select numberGroup.First(); 

ないすべてのLINQをメソッドは、メソッド呼び出しに変換されるクエリ構文でサポートされています。

+1

@Default:正しいですが、古いvb.netクエリは1つのアイテムしか返しませんでした。私はそれを編集しました。 –

+0

hm ..なぜvb.net版を投稿するのですか?それは要求されていませんし、質問は.NETではなくC#でタグ付けされています。それが間違っていると言っているのではなく、ちょうどなぜか – Default

+0

@Default:C#とVB.NETが今では等しいのでもう意味をなさない –

関連する問題