这是我的表结构
地方
- PlaceId PK
- 姓名
- ...
地点类别
- 货号 PK
- 姓名
- ...
地方猫
- PlaceId PK
- 货号 PK
这是我的查询,它根据类别 id(表连接)提取 Places
public static IQueryable<Places> ByPlaceCat(this Table<Places> table, Expression<Func<PlaceCats, bool>> predicate) {
var db = (DataContext)table.Context;
var innerBizBase = db.PlaceCats.Where(predicate);
return db.Places.Join(innerBizBase, a => a.PlaceId, ab => ab.PlaceId, (a, ab) => a);
}
我这样使用它:
places = Db.Places.ByPlaceCat(a => a.CatId == 5);
但我希望能够根据List<int>
类别 id 进行拉取。查看生成的 PLINQO 代码,由多个 PlaceId(但不使用连接表)提取的查询如下所示:
public static IQueryable<Places> ByPlaceId(this IQueryable<Places> queryable, IEnumerable<long> values)
{
return queryable.Where(p => values.Contains(p.PlaceId));
}
我怎样才能从本质上合并这两个查询,让我传入一个List<int>
CatId 进行查询?这个 LINQ/PLINQO 查询正在融化我的大脑。提前致谢!