[問題] 如何使用特殊字元在Linq Query?

看板C_Sharp (C#)作者 (龍城飛將)時間13年前 (2012/05/25 12:27), 編輯推噓0(0016)
留言16則, 5人參與, 最新討論串1/1
請教一下,如何在Linq query中使用特殊字元? 舉例: var q = (from p in dataServiceManager.getDataService().XXXX where p.field1 == "TEST.TEST" select p).First(); 上面這個例子在執行時會出現DataServiceRequestException. 原因應該是出在"TEST.TEST"中有(.)出現(我猜想的) 如果我的資料有這類的特殊字元存在,我要怎麼修改where條件才能query得到? 補上error message HTTP 404. 您要尋找的資源 (或其相依性的其中之一) 可能已經移除、名稱已經變更或是暫時無法使用。 請檢閱下列 URL,並且確定它的拼寫無誤 要求的 URL: /EntityDataService.svc/XXXX('TEST.TEST') 版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.272 [HttpException]: 檔案不存在。 於System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response) 於 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath) 於 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) 於 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 於 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.153.62

05/25 12:30, , 1F
我覺得問題應該不是出在那 不然你把where拿掉試試
05/25 12:30, 1F

05/25 13:12, , 2F
where拿掉是ok的
05/25 13:12, 2F

05/25 13:42, , 3F
跟 . 沒關係,那在字串中是很正常的字元
05/25 13:42, 3F

05/25 13:43, , 4F
可以如果沒有.的話,where條件式可以運作的,多了.就掛了
05/25 13:43, 4F

05/25 13:46, , 5F
這跟field1是primary key有沒有關係?
05/25 13:46, 5F

05/25 13:47, , 6F
p.field1 == "TEST.TEST" ???
05/25 13:47, 6F
已修正 ※ 編輯: tong1219 來自: 61.222.153.62 (05/25 13:54)

05/25 13:54, , 7F
==
05/25 13:54, 7F

05/25 13:55, , 8F
p.field1是object ? .是很一般字元 不是特殊字元
05/25 13:55, 8F

05/25 13:56, , 9F
exception message呢?
05/25 13:56, 9F

05/25 13:56, , 10F
原因可能是我設field1為primary key的關係
05/25 13:56, 10F

05/25 13:57, , 11F
如果TEST.TEST是用在其他非PK欄位是可以正常使用
05/25 13:57, 11F

05/25 13:58, , 12F
field1在DB中的type是什麼?
05/25 13:58, 12F

05/25 14:04, , 13F
varchar2
05/25 14:04, 13F
※ 編輯: tong1219 來自: 61.222.153.62 (05/25 14:08)

05/26 12:52, , 14F
你的linq是直接寫在程式碼?
05/26 12:52, 14F

05/26 12:53, , 15F
看message 那段where一起被當做web service url一部分了
05/26 12:53, 15F

05/26 12:53, , 16F
所以才會404 如果是抓回來比對出錯就不是404
05/26 12:53, 16F
文章代碼(AID): #1Flmefzf (C_Sharp)
文章代碼(AID): #1Flmefzf (C_Sharp)