【Linq】Character literal must contain exactly one character解法紀錄

  • 516
  • 0

Character literal must contain exactly one character 解法紀錄

 

執行

 var where = new List<string>();

where.Add("ID == '9408' ");
where.Add("name== \"金城武\""); 

where.Add("AKA == \"我\"");

// 反斜線\"   輸出等於"   這樣程式中才能變成 name =金城武 如果寫"name = 金城武"

系統會跟你說你不是我

沒 被盜

//系統會跟你說你定義的model內沒有"name = 金城武" 的這個欄位  不要再冒充我了 謝謝

var sum = string.Join(" AND ", where.ToArray());

return               GGRepository.Queryable()
                        .AsExpandable().Where(sum) 

                       // sum  這邊會等於 => 搜尋 Where " ID == '9408' AND name == "金城武" AND  AKA =="我" "
                        .OrderBy(x => x.顏值) //按照顏值排序
                        .ToPagedList(pageIndex, pageSize);//分頁

 

然後系統就會告訴你

Character literal must contain exactly one character 

碼德發科?

 

威蛇模呢?  因為  ID用單引號包起來'9408' (丟喜拎北  沒事 略過這句) 

在被C#抓去處理之後就會變成string 這樣C#在特殊情況下(像是施主定義的類型如果被轉了,或是C#看你不爽)的時候

覺得你搞得它很亂  所以C#: Character literal must contain exactly one character

 

解法94

把那該死的單引號變成雙引號  一定IPAD 反斜線

 

 var where = new List<string>();

====================> where.Add("ID == \"9408\"  ");   <======================
where.Add("name== \"金城武\""); 

where.Add("AKA == \"我\"");

var sum = string.Join(" AND ", where.ToArray());

return               GGRepository.Queryable()
                        .AsExpandable().Where(sum)  // 這邊會等於 => 搜尋 Where " ID == "9408" AND name == "金城武" AND  AKA =="我" "
                        .OrderBy(x => x.顏值) //按照顏值排序
                        .ToPagedList(pageIndex, pageSize);//分頁

 

打完收工,大Guy4 J樣 認同請分享。