使用EF To Linq執行類似sql的in語句


使用EF的時候,我們經常會遇到一些查出在xx中的數據,類似sql in查詢,比如查出id為18982,18976,1978的數據

我們可能會這樣寫

var wkids = "18982,18976,1978";
var wks = CurrentRepository.GetAllQuery<Projects_WorkHour>(x=> wkids.Contains(x.WorkHour_Id.ToString()));

會發現不是我們想要的結果,id為18,89,76等只要在上面id存在的都會查出來,因為我們使用的是string.contains()只要包含的都會查出來

我們需要使用的是System.Linq下的contains,最后的結果就是我們的in查詢,所以需要

1.using System.Linq

2.

var wkids = "18982,18976,1978";
string[] kk = wkids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var wks = CurrentRepository.GetAllQuery<Projects_WorkHour>(x=> kk.Contains(x.WorkHour_Id.ToString()));

 


免責聲明!

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



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