Mam dwa podmioty Kandydat i Kandydat Lokalizacja, w których Kandydat może mieć wiele wpisów w Kandydacie.Linq Navigation Properties complex gdzie ID (wybierz identyfikator z ...)
Lokalizacja CandidateLocation zawiera ID kandydata, kod ISO kraju (np. US, GB) i kolumnę typu (1 = dozwolone, 2 = ograniczone).
Reguły narzucają, że jeśli Kandydat nie ma wpisów "Dozwolone" w tabeli Kandydata, może pracować w dowolnym miejscu. Jeśli mają jawną lokalizację "dozwoloną", mogą działać tylko w wyraźnie dozwolonych lokalizacjach. Nie mogą pracować w wyraźnie ograniczonych lokalizacjach.
Aby spróbować wykazać to patrz rysunek poniżej (Kandydaci mogą mieć wiele lokalizacji Ja zachowałem go do jednego celu uproszczenia ilustracji)
W SQL Jednym ze sposobów osiągnięcia tego będzie po zapytaniu
SELECT *
FROM Candidate
WHERE Candidate.IsArchived = 0
AND
-- Do not inlude restricted locations (RestrictionStatus = 2)
Candidate.CandidateId NOT IN (SELECT CandidateId FROM CandidateLocation WHERE IsArchived = 0 AND CountryISOCode = @Location AND RestrictionStatus = 2)
AND
(
-- Include Explicit Permitted Locations
Candidate.CandidateId IN (SELECT CandidateId FROM CandidateLocation WHERE IsArchived = 0 AND CountryISOCode = @Location AND RestrictionStatus = 1)
OR
-- Include Candidates with no Explicit Permitted Locations
Candidate.CandidateId NOT IN (SELECT CandidateId FROM CandidateLocation WHERE IsArchived = 0 AND RestrictionStatus = 1)
)
Jeśli ktoś wie, jak osiągnąć ten LINQ & Właściwości nawigacji Chciałbym bardzo wdzięczni za pomoc.
Dziękujemy
Co masz do tej pory? [Co próbowałeś?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) – istepaniuk