Korzystanie z Entity Framework/LINQ, potrzebuję pomocy w następujących sprawach.Jak wykonać kwerendę tabeli skrzyżowań
Baza danych zawiera tabelę osób z kolumną tożsamości PersonId. Istnieje również tabela umiejętności z kolumną tożsamości SkillId. Te dwa są połączone za pośrednictwem trzeciej tabeli PeopleSkills, która ma własną kolumnę tożsamości PeopleSkillsId, obcą kolumnę odwołującą się do PersonId i obcą kolumnę odwołującą się do SkillId.
Metoda, którą próbuję zapisać, jest przekazywana jako parametr typu List, który zawiera dowolną liczbę umiejętności, których szukamy. Metoda powinna zwrócić Listę, która jest połączona z wszystkimi umiejętnościami na liście parametrów wejściowych. Jak zbudować listę, która wyklucza kogokolwiek bez wszystkich umiejętności z listy Umiejętności?
Problem polega na tym, że mam bardzo mało doświadczenia SQL. Mam wiele innych doświadczeń programistycznych, ale SQL jest zawsze dla mnie trochę trudny. Myślałem o użyciu Join, ale to nie zadziała. tj. jeśli moja osoba ma umiejętności A & B, a lista wyszukiwania zawiera elementy B & C, połączenie będzie dopasowane do nich na B i zwróci osobę. Potrzebuję tej osoby do wykluczenia, ponieważ on nie ma zarówno B & C.
Też myślałem o iteracji przez listę umiejętności i budowaniu filtra, ale to wydaje się brzydkie. Wydaje się, że jest to problem polegający na tym, że LINQ został zbudowany do obsługi, używając Listy do odpytywania na innej Liście i że powinno być eleganckie rozwiązanie.
Chciałbym dać ci to trochę do myślenia; W ciągu 24 godzin skontaktuję się z Tobą, udzielając wyczerpującej odpowiedzi, jeśli ktoś jeszcze tego nie zrobił. –