使用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()));