1

以下代码行不断让我崩溃:“调用的目标已引发异常。//未处理的表达式类型:1001”

谁能只看一眼就知道为什么?

myList.Aggregate((curmax, x) => (curmax == null || x.LastMonth > curmax.LastMonth ? x : curmax));

我得到的是 curmax 是将返回的变量,而 X 是一个被迭代的项目。但我无法解释错误。

4

2 回答 2

1

我怀疑这只是 NH​​ibernate 不支持的操作。但是,如果您只是在“LastMonth 的最大值”之后,您可以使用:

var latestPeriod = myList.OrderByDescending(x => x.LastMonth)
                         .FirstOrDefault();

这将相当简单,并且更有可能得到支持。

于 2011-10-06T12:30:14.243 回答
0

我通过.Tolist()从 Nhiberate 打电话解决了这个问题。从那里开始使用 Microsoft Linq 的聚合扩展方法(而不是 Nhibernate 版本)并且没有更多问题。

myList.ToList().Aggregate((curmax, x) => (curmax == null || x.LastMonth > curmax.LastMonth ? x : curmax));
于 2011-10-07T12:43:01.410 回答