Left Outer Присоединиться LINQ к объектам - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть следующие объекты:

Клиенты -- ID клиента- ClientName

Исполнитель - ContractorID- ContractorName

Предпочтительные подрядчики - PreferredContractorID-- ID клиента- ContractorID

Итак, у меня есть список клиентов и подрядчиков.Клиенты предпочитают работать с определенными подрядчиками, чем с другими.Я хочу создать запрос LINQ to Entity, в котором для всех подрядчиков будет указано логическое поле, указывающее, является ли подрядчик предпочтительным или нет.

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

Как определить, предпочтителен ли подрядчик или нет?*

1 Ответ

3 голосов
/ 17 сентября 2010
    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
                         };
...