我已经审查了这个错误的许多报告,但我所看到的解决方案要么不适用,要么不适用于我的情况(或者我不理解如何使它们工作?)所以我很不情愿地发布这个希望找到答案。LINQ to Entities:总结孩子价值
我在提交L2E以下简单查询:
var symbolCover = DataModel.NCoverAnalysisDetail.Where(d => d.IsNew &&
d.NCoverAnalysis.BuildTime > FromNewDate).Sum(c => c.SymbolCoverage);
,并抛出以下异常:
演员阵容价值型“的Int32”失败,因为物化值为null 。结果类型的泛型参数或查询都必须使用可为空的类型。
表上没有可为空的列,并且发送到数据库的SQL(见下文)返回0(零),所以我看不出问题是什么。
exec sp_executesql N'SELECT
[GroupBy1].[A1] AS [C1]
FROM (SELECT
SUM([Extent1].[SymbolCoverage]) AS [A1]
FROM [dbo].[NCoverAnalysisDetail] AS [Extent1]
INNER JOIN [dbo].[NCoverAnalysis] AS [Extent2] ON [Extent1].[NCoverAnalysisID] = [Extent2].[ID]
WHERE ([Extent1].[IsNew] = 1) AND ([Extent2].[BuildTime] > @p__linq__0)
) AS [GroupBy1]',N'@p__linq__0 datetime',@p__linq__0='2012-02-17 00:00:00'
看起来像http://stackoverflow.com/questions/2076827/linq-error-generic-parameter-or-the-query-must-use-a-nullable-type的副本。尝试使用int?而不是为symbolCover var? – AlanT 2012-02-17 09:35:01