簡體   English   中英

Linq to EF查詢,帶條件過濾器

[英]Linq to EF query with criteria filter

我有兩個表-如數據庫中所示

| 國家(地區)| ID int | 名稱varchar |

| 車| ID int | 名稱varchar | CountryID int FK到國家

  1. 我需要選擇ID為1的國家/地區的所有汽車

  2. 我還需要ID為2和3的國家/地區的所有汽車,誰的id(car)在(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時,該如何實現? 謝謝。

如果我正確理解您的問題,可能是這樣:

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM