[英]Linq to EF query with criteria filter
我有两个表-如数据库中所示
| 国家(地区)| ID int | 名称varchar |
| 车| ID int | 名称varchar | CountryID int FK到国家
我需要选择ID为1的国家/地区的所有汽车
我还需要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.