0
のint型の値を取得し、一つに2つの問合せをマージI以下のLINQのために、SQLがGroup
は、文字列値(例では、その結果
var group = "T";
var categoryQuery = from m
in ctx.Material
where m.Group == group
select m;
var maxValue = from c
in categoryQuery
where c.Order == categoryQuery.Select(o => o.Order).Max()
select c.Order;
問い合わせを持っている:「T」は、 "S"、 "R")、Order
はint値です。私が達成したいのは、特定のGroup
値でフィルタリングされた結果セットの行から、最高のOrder
int値を取得することです。最終的には、コードの他の場所で比較するために最大値を使用したいが、maxValue
IQueryableオブジェクトから値にアクセスするのに問題がある。
のでcategoryQuery
セットからのサンプルは、次のようになります。第二maxValue
クエリで
Id Group Order
----- ----- -----
100 T 0
101 T 1
102 T 2
103 T 3
ので、私は3をしたいと思い、それがTの全てのうち最大Order
値であるためGroup
の値。
最初の質問:maxValue
のint値にはどうすればアクセスできますか?
2番目の質問:クエリを1つのクエリに単純化するにはどうすればよいですか?
はそれが降順Order
、によって順序のように単純に思える
それは最終的に1つのクエリになります。生成されたクエリを見ましたか? [datacontext.log](https://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.log(v = vs.110).aspx) –
あなたの 'maxValue'クエリはちょうど行く0回以上繰り返される 'categoryQuery'中の最大' Order'のコレクションになるようにします。あなたは正確に何をしようとしていますか?いくつかのサンプルデータと得たい結果を表示できますか? – juharr
質問をより明確にするためのサンプルデータを追加しました。 – ratman