摘要:LINQ TO SQL 要小心欄位資料型別定義
我想要查看 Table 全部資料
我想要更新這一筆資料的 CompanyName 欄位
但發生 Exception,原因為 result2 == null ,但 Table 中確實有這一筆呀!! 那ㄟ安捏??
再試一下,改一下資料來源,沒問題也!! 找的到這一筆,那…我胡塗了
不信邪再試一下,改一下 Lambda Expression
這樣也可以找的到…開始有點眉目了,查一下資料庫欄位的資料型別
原來是 nchar 的型別,在資料庫中欄位值長度不足會補空白。
結論:
1.在 LINQ TO SQL 中使用連線模式取得資料時是使用 SQL 語法,不會考慮空格的問題。
2.但使用 ToList() 轉為離線模式時,在離線模式中這個空格是會存在的。
所以在存取離線模式的資料時還是避免直接使用等號運算子(==)比較保險。
3.照上面範例來看 Contains 函式也不是一個好方法,因為有 LIKE 的意味在。
較保險的做法,請使用 Trim 函式