EF 1.0 выравнивает левый запрос на соединение - PullRequest
0 голосов
/ 07 июля 2011

Я пытаюсь выполнить запрос linq для приведения в соответствие (Visual Studio 3.5 / EF 1.0) для 3 сущностей со следующими отношениями:

xcCRMCounterparty * => 0..1 CSIDsInUse
CSIDsInUse1 => * xcCIFToCSID

Ранее в T SQL я использовал:

select distinct CIF, xcCIFToCSID.xcCSID, CounterpartyName 
from xcCIFToCSID 
left join CSIDsInUse 
on xcCIFToCSID.idCSID = CSIDsInUse.Id
left join xcCRMCounterparty
on CSIDsInUse.Id = xcCRMCounterparty.IdCSID 
order by CounterpartyName

Теперь с EF я пытаюсь сгладить набор результатов, как показано ниже, но я не знаю, каквыровнять элемент xcCRMCounterparty, т. е. это коллекция, а не одно поле

 var query = from cifto in entities.xcCIFToCSIDSet.Include(x => x.CSIDsInUse).Include(x => x.CSIDsInUse.xcCRMCounterparty)
                    select new 
                    { 
                        cifto.CIF,
                        cifto.xcCSID,
                        cifto.CSIDsInUse.xcCRMCounterparty
                    };

Как я могу изменить свой запрос, чтобы получить сглаженные результаты?

1 Ответ

1 голос
/ 08 июля 2011

Попробуйте это:

var query = from cifto in entities.xcCIFToCSIDSet
            from x in cifto.CSIDsInUse.xcCRMCouterparty
            select new 
                {
                    cifto.CIF,
                    cifto.xcCSID,
                    x.Name
                }; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...