左外连接LINQ到实体

左外连接LINQ到实体,linq,entity-framework-4,asp.net-4.0,Linq,Entity Framework 4,Asp.net 4.0,我拥有以下实体: 客户端 --客户ID --客户名称 承包商 --合同工 --合同名称 首选承包商 --PreferredContractorID --客户ID --合同工 所以我有一份客户和承包商的名单。与其他承包商相比,客户更喜欢与某些承包商合作。我想构建一个LINQ-to实体查询,该查询使用一个布尔字段提取所有承包商,该字段指示承包商是否优先 public IQueryable<PreferredContractor> GetPreferredContractors(int

我拥有以下实体:

客户端
--客户ID
--客户名称

承包商
--合同工
--合同名称

首选承包商
--PreferredContractorID
--客户ID
--合同工

所以我有一份客户和承包商的名单。与其他承包商相比,客户更喜欢与某些承包商合作。我想构建一个LINQ-to实体查询,该查询使用一个布尔字段提取所有承包商,该字段指示承包商是否优先

 public IQueryable<PreferredContractor> GetPreferredContractors(int clientID)
    {
        var preferredContractors = from c in db.Contractors
                  from pc in db.PreferredContractors.DefaultIfEmpty()
                  select new PreferredContractor
                             {
                                 ContractorID = c.ContractorID,
                                 ContractorName = c.ContractorName,
                                 IsPreferred = // This is where I need help
                             };

        return preferredContractors;
    }
public IQueryable GetPreferredContractors(int-clientID)
{
var preferredContractors=来自数据库Contractors中的c
从db.PreferredContractors.DefaultIfEmpty()中的pc
选择新的首选承包商
{
ContractorID=c.ContractorID,
ContractorName=c.ContractorName,
IsPreferred=//这就是我需要帮助的地方
};
返回优先承包商;
}

我如何确定是否首选承包商?

感谢您的及时回复。但是我应该在哪里使用clientID呢?我需要显示选定客户的首选承包商。感谢您的及时回复。但是我应该在哪里使用clientID呢?我需要显示选定客户的首选承包商。
    var preferredContractors =
              from c in db.Contractors
              join pc in db.PreferredContractors.Where(pc2 => pc2.ClientId == clientId) on c.ContractorId equals pc.ContractorId into j
              from pc in j.DefaultIfEmpty()
              select new PreferredContractor
                         {
                             ContractorID = c.ContractorID,
                             ContractorName = c.ContractorName,
                             IsPreferred = pc != null
                         };