2010-03-25 149 views
2
var results = from formNumber in context.DetailTM 
    join c in context.ClaimPeriodTM on formNumber.ClaimPeriod equals c.Cid 
    where formNumber.FormNumber.StartsWith(fNumber) 
      && formNumber.RegistrationNumber != registrationNumber 
    select new { RegNo = formNumber.RegistrationNumber, 
      CP = c.ClaimPeriod, FormNo = formNumber.FormNumber }; 

AND條款與.StartsWith不起作用。如果我使用==運算符,查詢工作正常。我嘗試在where子句中添加括號,但它沒有幫助。任何想法缺少什麼。先謝謝你。LINQ問題在哪裏條款

+0

什麼是錯誤notsupportexception? – Nix 2010-03-25 19:43:33

+0

如果沒有錯誤,哪些formNumber項目被錯誤地包含或排除?我們只是沒有足夠的數據來幫助。 – 2010-03-25 19:47:07

+0

formNumber.RegistrationNumber!=註冊號 不起作用。即 formNumber.RegistrationNumber!= 1234 該查詢告訴不顯示1234,但它仍顯示 – Kris1511 2010-03-25 19:51:12

回答

0

嘗試一些非常基本的東西,如「& & true == false」,看看是否失敗。也顛倒順序。如果您顛倒了訂單,它仍然是第二個失敗的條款嗎?

沒有什麼關於StartsWith應該引起這種行爲。這裏還有其他事情要做。修剪和移動元素,直到你隔離真正的錯誤。

0

FormNumber的數據庫類型是什麼?如果它的char(而不是varchar),那麼你可能不得不修剪比較的一側或兩側。

where 
    formNumber.FormNumber.Trim().StartsWith(fNumber.Trim()) 
    && formNumber.RegistrationNumber != registrationNumber 
0

與jrummells相同,只是針對額外的評論。

formNumber.RegistrationNumber!= registrationNumber

這裏檢查數據庫類型。如果它們的長度固定(char或nchar),則可能需要進行一些修整。