我有一个对象 IQueryable,我正在尝试动态添加 Where 子句,这对于列表对象上的列非常有用,但是现在有条件地我想将一个 IN 子句添加到具有列 ListingID、AmenityID 的导航属性 (ListingAmenities)
我有可能包含我喜欢过滤结果的设施的 critiera.AmenityIDs。
如果我的数组中有任何 amenityID,我正在尝试实现以下目标
select * from Listings l inner join ListingAmenities a on l.ListingID = a.ListingID where a.AmenityID IN(1,2,3)
这是我的代码(我使用的是 EF5)
if (criteria.AmenityIDs.Count > 0)
{
listings = listings.Where(x => x.ListingAmenities.Any(y => y.AmenityID == criteria.AmenityIDs));
}
这当然行不通。重要说明是我正在动态添加这些 WHERE 子句,这就是我构建 IQueryable 对象的原因