如何在Linq2Sql中编写此查询

Rem*_*rME 6 sql linq select linq-to-sql

我有一家餐桌公司,其中包含company_id,company_name和其他详细信息.我有一个表子转包,它有一个映射到company.company_id的company_id列.

如何编写select语句以获取尚未分配给活动转包的所有活动公司?IE无法在subcontracts.company_id中找到company_id

******编辑*****

我相信正确的sql是:

select company_id 
from company 
where company.active_status = 1 
and not exists( select * from subcontracts 
                where subcontracts.company = company.company_id 
                AND subcontracts.active_status = 1
              )
Run Code Online (Sandbox Code Playgroud)

Jac*_*itt 2

子选择与 LINQ 中的几乎相同。

var noSubs = from company in context.Companies
             where company.active_status == 1 &&
                 !(from subcontract in context.Subcontracts
                  where subcontract.active_status == 1
                  select subcontract.company_id).Contains(company.company_id)
             select company;
Run Code Online (Sandbox Code Playgroud)

Linq to SQL 会将其转换为分包表上的“不存在”。