2016-06-06 3 views
0

데이터베이스에 표시된대로 아래에 두 개의 테이블이 있습니다.기준 필터가있는 Linq to EF 쿼리

| 국가 | ID int | 이름 varchar |

| 자동차 | ID int | 이름 varchar | CountryID INT FK 나는 또한 모든 ID 2 국가에서 자동차와 3 whos는 IDS (자동차)가 필요 하나

  • ID와 국가의 모든 자동차를 선택 (에 필요

    1. 나라

      에 4,5)

    EF를 사용하면 아래 질문이 있습니다.

     List<int> listOfCountries = new List<int> { 1,2,3 }; 
    
         var query = (
          from country in context.Countries.AsNoTracking() 
          join car in context.Cars.AsNoTracking() on new { CountryID = country.ID} 
              equals new { CountryID = cars .CountryID } 
          where listOfCountries.Contains(prv.CountryID) 
          select car); 
    

    노조를 사용하는 대신 다른 방법이 있습니까? 사례 명세서가 필요합니까 (예 : 국가 ID가 (1)과 같지 않은 경우) 다음에 (4,5)의 자동차 ID를 필터링하십시오. 어떻게 달성됩니까? 감사. 내가 제대로 질문을 이해하면

  • +1

    그것이 어디에서 단지 OR 문이 아닌? – MarkB

    답변

    3

    이 그것을 할 수 있습니다 :

    List<int> listOfCountries = new List<int> { 2,3 }; 
    List<int> listOfCarIds = new List<int> { 4,5 }; 
    
    var query = from car in context.Cars.AsNoTracking() 
    where car.Country.Id = 1 || (listOfCountries.Contains(car.Country.Id) && listOfCarIds.Contains(car.Id))