LINQ函数匿名类型在当前上下文中不存在

时间:2015-12-04 16:02:09

标签: linq lambda anonymous

我最近继承了我公司有时会出错的网站,但不是与他们一起使用的代码,因此使用ilspy反编译二进制文件。我得到的错误如下:

decimal? locA = (from x in data where x.location == (int?)0 && 
x.invoice.Year  == (int?)year && x.invoice.Month == (int?)month
select x).Sum((<>f__AnonymousType1<Invoice, int?> x) => x.invoice.Month_Value);

问题在于<>f__AnonymousType1<Invoice, int?>行。错误消息(设计时间)是当前上下文中不存在类型f__AnonymousType1。 (代码已反编译为其中的15个)A找不到声明f__AnonymousType1的任何地方。

感谢您对此提供任何帮助......

加雷

1 个答案:

答案 0 :(得分:0)

看起来它是一个lambda表达式(匿名函数?),它采用Invoice类型,并期望返回类型为int?。它被宣布在那里。只需删除它。编译器通常会自动为您生成。

.Sum((<>f__AnonymousType1<Invoice, int?> x) => x.invoice.Month_Value)变为.Sum((x)=>x.invoice.Month_Value).Sum(x=>x.invoice.Month_Value)