次の SQL を Linq に変換しようとしていますが、最小値を適用しようとすると混乱します。基本的に、ビームとその許容荷重を含むテーブルがあります。次に、データベースにクエリを実行し、必要な強度を持つ最小のビームをタイプ別に検索します。次の t-SQL
select
sed.SEDetailID
from
dbo.StructuralElementDetail sed
inner join (select StructuralElementID, min(Ix) as MinIX from dbo.StructuralElementDetail where Ix >= @iRequired group by StructuralElementID) o
on sed.StructuralElementID = o.StructuralElementID
and sed.Ix = o.MinIX
order by
StructuralElementID,
Sequence;
必要な強度を持つ最小のビームをタイプ別に返します。
ID をキーとするディクショナリに既にビームがロードされているので、データベースに別の呼び出しを行うのではなく、そのオブジェクトをクエリできるはずだと考えました。
私の辞書は
Dictionary<int, Beam>;
私はこのようなことを試みていますが、各タイプで最小のビームを取得する方法が混乱しています。
var Beams = db.Values.Where(specificBeam => specificBeam.Ix >= iRequired)
.GroupBy(specificBeam => specificBeam.ElementType)
.Select(sb => new { sb.Key, MinIActual = sb.Min(specificBeam => specificBeam.Ix) });
ポインタはありますか?と組み合わせて First をネストできますか