Mam trochę problemów z zapytaniem w Linq do Entities, które mam nadzieję, że ktoś może rzucić światło na :-) Co próbuję zrobić, aby utworzyć zapytanie, które łączy trzy tabele.LINQ do Entities trzy table join query
Do tej pory działa, ale ponieważ ostatnia tabela, którą próbuję dołączyć, jest pusta, wynik zapytania nie zawiera żadnych rekordów. Kiedy usuwam ostatnie sprzężenie, daje mi to właściwe wyniki.
Moja kwerenda wygląda następująco:
var query = from p in db.QuizParticipants
join points in db.ParticipantPoints on p.id
equals points.participantId into participantsGroup
from po in participantsGroup
join winners in db.Winners on p.id
equals winners.participantId into winnersGroup
from w in winnersGroup
where p.hasAttended == 1 && p.weeknumber == weeknumber
select new
{
ParticipantId = p.id,
HasAttended = p.hasAttended,
Weeknumber = p.weeknumber,
UmbracoMemberId = p.umbMemberId,
Points = po.points,
HasWonFirstPrize = w.hasWonFirstPrize,
HasWonVoucher = w.hasWonVoucher
};
Chciałbym się dostać jakieś rekordy, nawet jeśli tabela zwycięzców jest pusta lub nie ma odpowiednika w nim.
Każda pomoc/wskazówka na ten temat jest bardzo doceniana! :-)
Dziękuję bardzo z góry.
/Bo
Joel, to jest po prostu niesamowite i czyste! I działa :-) wielkie dzięki. Teraz ciężka część: zarówno twoja odpowiedź jak i cadrell0 faktycznie mi pomogły, więc która odpowiedź na znak jest akceptowana? Jakie są zasady dotyczące stackoverflow? – bomortensen
Gdybym był pytającym, chciałbym przegłosować oba i zaakceptować którykolwiek z nich użyłem. – cadrell0