Я пытаюсь выяснить способ объединения этих двух запросов LINQ. Первый создает список праздничных клиентов, а второй - отменяет список на основе адреса электронной почты.Объединение запросов LINQ для получения уникальных записей
Каков наилучший способ их комбинирования?
var allNonBuyers = (from a in allCustomers
where !(from q in db.Quotes
where q.CreationDate > DateTime.Now.AddMinutes(duration)
join p in db.Passengers on q.QuoteGUID equals p.QuoteGUID
where q.PolicyNumber != null
select p.EmailAddress).Contains(a.EmailAddress)
select new { a.QuoteGUID, a.Title, a.FirstName, a.LastName, a.EmailAddress, a.Telephone });
var distinctNonBuyers = from buyer in allNonBuyers
group buyer by buyer.EmailAddress
into gbuyer
select gbuyer.First();
Так действительно, чтобы вещи были достаточно простыми и удобочитаемыми, чтобы идти с несколькими запросами? – FloatLeft
@FloatLeft yep, но я всегда проверяю свои запросы в Linq pad, иногда Linq2SQL генерирует множество операторов sql, если вы не исключаете его. – Magnus
Linq имеет отложенные и незащищенные операторы. Пока вы не используете оператор nondferred, запрос не будет выполняться до перечисления. .First() - это непересекающийся оператор, который будет выполняться в этой точке. – mark123