使用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