Я просмотрел многочисленные сообщения об этой ошибке, но решения, которые я видел, либо не применяются, либо не работают в моей ситуации (или я не понимаю, как заставить их работать?), Поэтому я неохотно публикую этов надежде найти ответ.
Я отправляю следующий простой запрос в L2E:
var symbolCover = DataModel.NCoverAnalysisDetail.Where(d => d.IsNew &&
d.NCoverAnalysis.BuildTime > FromNewDate).Sum(c => c.SymbolCoverage);
, и он выдает следующее исключение:
Не удалось преобразовать тип значения Int32, поскольку материализованное значение равно нулю.Либо универсальный параметр типа результата, либо запрос должен использовать обнуляемый тип.
В таблицах нет столбцов, допускающих обнуление, и 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'