在C#中使用Lambda進行First或Single查詢時,有可能會報異常:
異常詳細信息:System.InvalidOperationExecption:序列不包含任何元素
原因是因為使用First的時候至少必須有一條數據,使用Single查詢的時候查詢結果必須有且只有一條數據,如果沒有查到任何數據就會報異常。
解決辦法:使用FirstOrDefault和SingleOrDefault,如果沒有數據的話,返回對應類型的默認值。
【解決過程】
根據上面的參考答案,將First改成FirstOrDefault后,報錯未將對象引用到實例,轉到First的定義,文件只讀未能更改。曹幫我寫了一個判斷解決了問題。
id的值為0,但是數據庫里沒有SCTId為0的數據,所以曹加了一個id>0的條件,排除了id等於小於0的可能,才能查出數據。