下面顯示的運行時錯誤如下所示。雖然它編譯罰款:LINQ Sum()函數在未使用ToList()的情況下失敗
float? totalSum = (from t in _context.Orders
join c in _context.Customers.Where(c => c.region=="NW")
on t.CustomerId equals c.CustomerId
select t.price).Sum();
錯誤:
Unable to cast object of type 'System.Double' to type 'System.Nullable`1[System.Single]'.
但接下來的工作(唯一的區別是,我使用ToList()
應用.Sum()
前 - 但根據definition of Sum()它應該不工作正確?
float? totalSum = (from t in _context.Orders
join c in _context.Customers.Where(c => c.region=="NW")
on t.CustomerId equals c.CustomerId
select t.price).ToList().Sum();
UPDATE:
price
屬性的數據類型爲float?
映射到數據類型real
在SQL Server 2012中
什麼是所有變量和屬性的實際類型?你的實體如何映射?這個錯誤表明,「價格」不是「浮動」,或者你的映射混亂了。 –
@JeffMercado在閱讀您的評論後,我再次檢查以確認'價格'確實是'浮動'? – nam
嘗試使用'select t.price? 0.0f'代替。顯然有些東西搞砸了翻譯,因此避開問題領域可能會解決這個問題。但是,仍然...這將有助於查看_actual_類定義和_actual_映射......沒有足夠的信息來診斷問題,但您仍然沒有提供該信息。 –