linq中的contains條件


在sql查詢語句中,in 在linq 中用contains,並且contains前面是數組,而后面是列名,如:

 

人力資源查詢SELECT distinct BH FROM cd  where (LB = '身份') AND (LM IN ('合同工','臨時工'))

轉換成Linq 是這樣的:

如果sf是變量,是在程序中根據用戶選擇的條件臨時添加的,sf可以為空,也可不為空,

在程序中定義sf,在程序中賦值為:sf="合同工","臨時工"

 

var IDquery = from c in jtdc.CataLogDetails
                     where  (c.LB == "身份" && new string[] {sf}.Contains(c.LM))                
                     select g.Key.BH;

如果用IDQuery查詢的話就查詢不出來,因為sf 在此是一個string 類型的變量,new string[] {sf},這個數組中的長度是1,而不是二,也就不會根據“合同工”和“臨時工”來找,因此就沒有查詢結果。

因此只能用sf.split(',')產生數組來查詢

所以正確的LINQ語句是:

var IDquery = from c in jtdc.CataLogDetails
                     where  (c.LB == "身份" && sf.Split(',').Contains(c.LM))                
                     select g.Key.BH;
 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM