LINQ оставил присоединиться, используя Castle Active Records? - PullRequest
2 голосов
/ 02 июля 2011

Как выполнить левое объединение с использованием LINQ и Castle Active Records?

Если попытался выполнить следующее:

from account in AccountRecord.Queryable
join s in SchoolRecord.Queryable on account equals s.Account into schools
where account.PaymentType == "S"
select new { Account = account, School = schools.ElementAt(0) };

, но это вызвало у меня следующее исключение:

Невозможно привести объект типа 'Remotion.Data.Linq.Clauses.GroupJoinClause' к типу 'Remotion.Data.Linq.Clauses.FromClauseBase'.

выполнение следующих работ (но это не то, что я хочу, потому что мне нужно левое соединение):

from account in AccountRecord.Queryable
where account.PaymentType == "S"
from school in SchoolRecord.Queryable
where school.Account == account
select new { Account = account, School = school };

Ответы [ 2 ]

2 голосов
/ 11 сентября 2012

Кажется, что это невозможно в данный момент.

Если я или кто-то еще найду (-ят) рабочее решение, я обновлю этот ответ.

0 голосов
/ 02 июля 2011

Использование DefaultIfEmpty() может сделать это.

http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/d9a19de2-87c7-48ff-9c93-5fbcd0db3983/

...