[問題] Linq關於"字串長度必須剛好一個字元"錯誤

看板C_Sharp (C#)作者 (克難)時間13年前 (2011/11/28 11:20), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
查過MSDN,這個錯誤似乎是個bug 例如我的sql: table name: customer column: cust_id; type:varchar(8) linq code: DataClassesDataContext dcc = new DataClassesDataContext(); //以下這段出現錯誤 CUSTOMER customer = dcc.CUSTOMER.SingleOrDefault(c => c.cust_id.Equals(id)); //id為登入者之session,長度為8 if(string.IsNullOrEmpty(customer.form)) //如果該欄為null(未設定過) { customer.form = formsrl; //formsrl為web中要給使用者選擇更改的值 } else { //... } 錯誤訊息為"字串長度必須剛好一個字元。" (A character string length must be exactly) 查過網路似乎為一個vs2008的bug,不知道有沒有解?@@ 之後是改用SqlCommand的舊方法直接下update指令結果ok linq就一直出現這種錯誤...orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.140.36

12/01 06:34, , 1F
VS2008 的 bug 是在於 varchar(1) 對應成 char
12/01 06:34, 1F

12/01 06:35, , 2F
你的資料表設計有 varchar(1) 就有可能,解決方式是
12/01 06:35, 2F

12/01 06:35, , 3F
手動改 EF 的 char 型別為 string
12/01 06:35, 3F

12/01 13:00, , 4F
感謝~資料表還真的是varchar(1)
12/01 13:00, 4F

12/01 13:03, , 5F
雖然是跟session不同欄位,不過看來也是會影響到?
12/01 13:03, 5F
文章代碼(AID): #1Eqlu3OL (C_Sharp)
文章代碼(AID): #1Eqlu3OL (C_Sharp)