大まかに言えば、列の合計に基づいてレコードのサブセットを取得できるクエリが必要です。Linq: How to query items from a collection until the sum reached a certain value .
ただし、重要な違いは、彼はすでにオブジェクトにレコードを持っているということです。私のテーブルには何百万ものレコードが含まれる場合があります。彼が行った方法でクエリを作成すると、次のエラーが発生します。
"A lambda expression with a statement body
cannot be converted to an expression tree"
それを調査した後、これは理にかなっていますが、LINQ は上記の質問の答えを有効な SQL に変えることはできません。
私の状況を表す架空の表を作成します。
Order Id | Cookie Name | Qty
1 Sugar 5
2 Snickerdoodle 4
3 Chocolate chip 8
4 Snickerdoodle 10
5 Snickerdoodle 5
このサンプルを考えると、合計 Qty がパラメーターからの入力を超えるまでの最初のX
注文を取得するクエリを作成する必要があります (つまり、ユーザーが 13 を選択すると、レコード 2 と 4 が返されます)。Snickerdoodle
私は LINQ の方が快適なので、Nhibernate.Linq を使用しています。必要があれば、私は ICreate に対して完全にオープンです。
補足として、私はこれを概念として、また直接的な問題として興味があります。Sum は必要ですが、条件が満たされるまで実行される takewhile に似た何かを実行する方法が必要です。