Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq基于另一个表中的值选择数据_C#_Linq - Fatal编程技术网

C# Linq基于另一个表中的值选择数据

C# Linq基于另一个表中的值选择数据,c#,linq,C#,Linq,下面列出了linq语句,我想根据另一个表中的值限制一个表中的记录。这是我的代码,它可以工作: using (context = new DocEntityConnection()) { var Docs = context.tbDocsDetails.Where(md => md.IsCurrentDetails && md.tbDoc.StatusID == 9).ToList(); this.approves = context.tbDocApproves

下面列出了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


如何将其添加到上面显示的代码中?

您需要的是一个
加入

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