在高层次上,我需要一个可以根据列的总和拉取记录子集的查询,就像Linq:如何从集合中查询项目直到总和达到某个值一样。
然而,关键的区别在于他已经在一个对象中获得了他的记录,而我没有也不能。我的表可以有数百万条记录。如果我按照他的方式构建查询,我会收到以下错误:
"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
鉴于此示例,我需要编写一个查询,该查询获取第一个X
订单,Snickerdoodle
直到总和 Qty 超过参数的输入(即,如果用户选择 13,它将返回记录 2 和 4 )。
我正在使用 Nhibernate.Linq,因为我更喜欢使用 LINQ。如果需要,我对 ICreate 完全开放。
作为旁注,我对此既是一个概念又是一个直接问题感兴趣。即使我需要一个 Sum,也必须有一种方法来执行类似于执行直到满足条件的 takewhile 的操作。