Как я могу использовать групповое соединение с синтаксисом метода?
я могу сделать группу присоединиться к синтаксису запроса, как это:Dynamics CRM 2011 Linq Group Join Method Синтаксис
var contAndAcc = from contact in linq.ContactSet
join account in linq.AccountSet
on contact.ParentCustomerId.Id equals account.AccountId
into accountGroup
from account in accountGroup.DefaultIfEmpty()
select new{contact = contact, account = account};
Компилятор преобразует синтаксис запроса в синтаксис метода, поэтому он должен быть возможно написать выше в синтаксисе метода.
Они не работают:
var contAndAcc = linq.ContactSet.GroupJoin(
linq.AccountSet, // collection to join to
contact => contact.ParentCustomerId.Id,
account => account.AccountId,
(contact, account) => contact);
var contAndAcc = linq.ContactSet.GroupJoin(
linq.AccountSet,
contact => contact.ParentCustomerId.Id,
account => account.AccountId,
(contact, account) => contact)
.DefaultIfEmpty()
.Select(contact=>contact);
var contAndAcc = linq.ContactSet.GroupJoin(
linq.AccountSet,
contact => contact.ParentCustomerId.Id,
account => account.AccountId,
(contact, account) => contact)
.DefaultIfEmpty()
.SelectMany((contact) => contact);
Независимо от того, что я стараюсь я получаю сообщение:
Операция «GroupJoin» должно быть, за которым следует «SelectMany»
операции, где селектор коллекции Призывая 'DefaultIfEmpty'.
Я также очень хотел бы использовать IEqualityComparer; это будет возможно?