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