Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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# 嵌套SQL到LINQ_C#_Sql_Linq - Fatal编程技术网

C# 嵌套SQL到LINQ

C# 嵌套SQL到LINQ,c#,sql,linq,C#,Sql,Linq,我有三张桌子 文档(文档ID、文档名称) 主题(主题,主题名称) DocumentSubjects(DocumentID,SubjectID) 我想从Documents表中获取文档,其中提供SubjectID作为输入 这是一个SQL查询 Select * from Documents where DocumentID IN ( Select DocumentID From DocumentSubjects Where SubjectID= 2 ); 我想在LINQ中查询此问

我有三张桌子

  • 文档(文档ID、文档名称)
  • 主题(主题,主题名称)
  • DocumentSubjects(DocumentID,SubjectID)
  • 我想从Documents表中获取文档,其中提供SubjectID作为输入 这是一个SQL查询

      Select * from Documents where 
      DocumentID IN (
      Select DocumentID From DocumentSubjects Where SubjectID= 2 
      );
    
    我想在LINQ中查询此问题,请您帮助我,提前谢谢。:)


    如果您希望以更“类似SQL的方式”使用它:

    var result = (from document in context.Documents
                  where (from documentsubject in context.DocumentSubjects 
                         where documentsubject.SubjectID == 2
                         select documentsubject.DocumentID)
                  .Contains(document.DocumentID)
                  select document).ToList();
    

    在StackOverflow,你应该尝试自己解决问题,然后来这里询问,包括你解决问题的尝试。
    context.Subjects.Where(s=>s.SubjectID == 2).SelectMany(s=>s.Documents).Distinct()
    
    var result = (from document in context.Documents
                  where (from documentsubject in context.DocumentSubjects 
                         where documentsubject.SubjectID == 2
                         select documentsubject.DocumentID)
                  .Contains(document.DocumentID)
                  select document).ToList();