1

この linq クエリはうまく機能します。

var qry = context.Boxes
          .GroupBy(k=>k.Box_ID)
          .Select( group => new {
              Box_ID = group.Key,
              TotalA = group.Sum(p => p.A),
              TotalC = group.Sum(p => p.C)
          })
          .Select(p => new {
              Box_ID = p.Kasa_ID,
              TotalA = p.TotalA,
              TotalC = p.TotalC,
              DiffAC = p.TotalA - p.TotalC
          });

しかし、私はこれらの型選択ステートメントを見ました.2番目のものは、次のように書かれた最初の選択の匿名型の結果を使用しています:

  var qry = context.Boxes
            .GroupBy(k => k.Box_ID)
            .Select(group => new
            {
                Box_ID = group.Key,
                TotalA = group.Sum(p => p.A),
                TotalC = group.Sum(p => p.C)
            })
            .Select(p => new
            {
                Box_ID,  //*** compiler error
                TotalA,  //I'm asking about these 3 lines, is this syntax possible 
                TotalC,  //TotalC = p.TotalC,
                DiffAC = p.TotalA - p.TotalC // calculate
            });

コメントには詳細が含まれています。

2 番目のクエリをコンパイルしようとすると、コンパイラから「名前 'Box_ID' は現在のコンテキストに存在しません」というエラーが表示されます。

実際、最初の構文に疑いの余地はありませんが、2 番目の構文の方が読みやすいです。2 番目の構文を使用するにはどうすればよいですか? またはどの条件で使用できますか。

4

1 に答える 1