Linq 根据另一个表中的值选择数据
本文关键字:选择 数据 另一个 Linq | 更新日期: 2023-09-27 18:35:03
我有下面列出的linq语句,我想根据另一个表中的值限制一个表中的记录。这是我拥有的代码:
using (context = new DocEntityConnection())
{
var Docs = context.tbDocsDetails.Where(md => md.IsCurrentDetails && md.tbDoc.StatusID == 9).ToList();
this.approves = context.tbDocApproves.ToList().Where(a => Docs.Select(x => x.DocID).ToList().Contains(a.DocID)).ToList();
return Docs.Select(md => GetDataItem(md)).ToList();
}
还有一个名为 tbDocStatus
的表,它也有一个DocId
字段我只想从tbDocDetails
返回tbDocdetails.DocId = tbDocStatus.DocId
和tbDocStatus.StatusId = 4
的记录。
我将如何将其添加到上面显示的代码中?
你需要的是一个join
var Docs = from docDetail in context.tbDocsDetails
join docStatus in context.tbDocStatus
on docDetail.DocId = docStatus.DocId
where docStatus.StatusId == 4
select docDetail;
using (context = new DocEntityConnection())
{
var Docs = context.tbDocsDetails.Where(md => md.IsCurrentDetails && md.tbDoc.StatusID == 9).ToList();
var DocsFiltered = from d in Docs
join docStatus in context.tbDocStatus
on d.DocId equals docStatus.DocId
where docStatus.StatusId = 4
select d
this.approves = context.tbDocApproves.ToList().Where(a => Docs.Select(x => x.DocID).ToList().Contains(a.DocID)).ToList();
return DocsFiltered.Select(md => GetDataItem(md)).ToList();
}