[Linq]使用EF To Linq执行类似sql的in语句

Posted 厦门德仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linq]使用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

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

以上是关于[Linq]使用EF To Linq执行类似sql的in语句的主要内容,如果未能解决你的问题,请参考以下文章