簡體   English   中英

即使SQL Server表中有數據,簡單的LINQ查詢也會獲取NullReferenceException

[英]Simple LINQ query gets NullReferenceException even though SQL Server table has data

我有一個簡單的Linq查詢,突然失敗。 直到昨天才解決,我無法確定問題所在。

該查詢只是從SQL Server獲取完整的視圖

using(JobEntities JE = new JobEntities())
{
     var BatchData = (from x in JE.vwBatchObjectActiveBatches select x).ToList();
}

從昨天開始,此行將獲得

NullReferenceException(對象引用未設置為對象的實例)

我的懷疑是,用戶輸入了錯誤的數據,導致該視圖在SQL Server上失敗,但是我檢查了SQL Server本身,該視圖運行良好並填充了數據。

該查詢運行在一個較大的函數中,該函數從許多地方加載數據,因此,我創建了一個測試用例,我只需要加載主窗口並直接在后面的代碼中運行此查詢,以確保沒有其他因素影響它,並且查詢仍然失敗。 我在該項目中運行的所有其他Linq查詢仍然有效,只有此一個失敗。 該應用程序目前尚無任何生產,並且至少已經靜止了幾個月。

當我在監視窗口中查看JE時,可以看到vwBatchObjectActiveBatches ,它在Local部分中列出了164條記錄-這與SQL Server上的視圖結果匹配。 展開結果視圖再次顯示空錯誤。

調試信息

如何查找和修復導致此查詢失敗的原因? 為什么結果視圖顯示錯誤,但是本地行顯示我嘗試獲取的數據?

看起來您的數據庫返回了NULL ,而Entity Framework則不希望/不允許它。 返回的數據應符合其數據模型對象的定義。

解決方案:或者“修復”數據,或者修復生成數據的查詢,或者更改數據模型對象的定義以允許沖突字段為NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM