我的程序一直拋出一個InvalidOperationException異常,錯誤爲「無法將null值分配給類型爲System.Boolean的成員,這是一個不可爲空的值類型」。我無法理解這一點,因爲我的代碼沒有試圖分配任何東西,只是遍歷列表並生成所有索賠號的字符串(如果查詢沒有關聯的索賠,則返回空字符串):試圖調試InvalidOperationException
public string ClaimNumbers
{
get
{
if (Enquiry.Claims != null && Enquiry.Claims.Count>0)
{
var sb = new StringBuilder();
foreach (var claim in Enquiry.Claims)
{
sb.Append(claim.ClaimId.ToString("00000") + ", ");
}
return sb.ToString().Substring(0, sb.Length - 2);
}
return string.Empty;
}
}
奇怪的是,當我步調試器中的代碼,並試圖擴大Enquiry.Claims.Count,我看到:
但是當我暫停了一下,跨上下一行更改爲:
我正在使用Linq to Sql,並且Claims是一個實體集,所以我想知道是否可能與從數據庫中提取數據有關,但是我不確定,所以想不出來解決問題的最好辦法是。
不太確定是什麼導致了實際的錯誤,但我想指出,將鼠標懸停在屬性上(和/或打開自動窗口)會通過調用屬性來改變應用程序的行爲,然後才能進入它們! (並繞過它自己的小偷看斷點) –
我已經看到這與Linq2SQL相當頻繁,特別是在SQL CE上。這可能意味着查詢在調試器要求值時超時。 – leppie