Вот моя структура таблицы
Места
PlaceCategories
PlaceCats
Вот мой запрос, который выбирает места на основе идентификатора категории (присоединение к таблице)
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>
идентификаторов категорий.Просматривая сгенерированный код 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 растопил мой мозг.Заранее спасибо!