剛開始接觸LINQ的人會對常用的四大函式Single, SingleOrDefault, First, 及FirstOrDefault之差別感到疑惑,下圖是比較表:
LINQ Single vs SingleOrDefault vs First vs FirstOrDefault - Technical Overload
http://www.technicaloverload.com/linq-single-vs-singleordefault-vs-first-vs-firstordefault/
當遇到查詢某ItemId資料時,一般人會統一用FirstOrDefacut()來通吃,避掉Exception的發生。然而有些程序的重點是在於查到該Entity後的連續操作,若一開始的Entity找不到是致命錯誤,應該讓它發生Exception才對,這時候就得用SingleXXX()了。
至於XXXOrDefault()主要是當該筆資料找不到時,能得到null值。詳細的用法可以參加該網址下方的使用範例,善用這類的Lambda表達式,可以比from…select語法更精簡。
No comments:
Post a Comment