【问题标题】:Convert SQL Command to lambda expression将 SQL 命令转换为 lambda 表达式
【发布时间】:2019-08-07 09:50:18
【问题描述】:
如果可能,请指导我如何将我的 SQL 命令转换为 lambda 表达式
select d.* from takcontractdet d where d.contractid=pubcontractid and d.personid in
(
select p.id from personel p where p.parentid=pubparentid)
)
【问题讨论】:
标签:
entity-framework
linq
lambda
【解决方案1】:
两个查询
var personelIds = Personels.Where(p => p.ParentId == pubparentid)
.Select(e => e.Id).ToList();
var result = Takcontractdets.Where(d => d.contractid == pubcontractid &&
personelIds.Contains(d.PersonId)).ToList();
一个查询
var result = Takcontractdets.Where(d => d.contractid == pubcontractid &&
Personels.Where(p => p.ParentId == pubparentid)
.Select(e => e.Id).ToList().Contains(d.PersonId))
.ToList();