Brakuje mi następującej kwerendy, która jest orzeszkami ziemnymi w prostym T-SQL.Linq do Encji od wielu do wielu wybierz zapytanie
Mamy trzy tablice fizyczne:
- Band (PK = BandId)
- MUZYKI (PK = MuicStyleId)
- BandMusicStyle (PK = BandId + MusicStyleId, FK = BandId, MusicStyleId)
Teraz próbuję uzyskać listę MusicStyles, które są powiązane z zespołem, który zawiera pewien łańcuch wyszukiwania w jego nazwie. Nazwa zespołu powinna być również w wyniku.
T-SQL byłoby coś takiego:
SELECT b.Name, m.ID, m.Name, m.Description
FROM Band b
INNER JOIN BandMusicStyle bm on b.BandId = bm.BandId
INNER JOIN MusicStyle m on bm.MusicStyleId = m.MusicStyleId
WHERE b.Name like '%@searchstring%'
Jak piszę to w LINQ do podmiotów?
PS: StackOverflow nie pozwala na wyszukiwanie na strunie „wiele do wielu” dla niektórych bizar powodu ...
jeśli potrzebujesz połączenia z lewej strony zamiast połączenia wewnętrznego, możesz może zastąpić 'from b in m.Band' z' from b in m.Band.DefaultIfEmpty() '. –
Prosty, ostry i użyteczny. Dzięki. – QMaster
@Peter, jeśli używamy metody linq, jakiej metody powinienem użyć, aby opisać składnię 'from .... from ....? czy mógłbyś podać przykład w metodzie linq. dzięki – Willy