[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语句的主要内容,如果未能解决你的问题,请参考以下文章
用 LINQ to SQL 或 LINQ to EF 替换 NHibernate
为啥使用 EF / Linq to sql 创建性能不佳的查询如此容易[关闭]
EF Core Linq-to-Sql GroupBy SelectMany 不适用于 SQL Server