I have two IQueryables:
Ingredient:
IngId
Description
AvailableIngredient:
IngId
Use the first query as the source of the subsequent query.
IQueryable query = from item in context.Ingredients
// Quite a few `where` clauses and stuff
select item;
if (filterByAvailable)
{
IQueryable availableQuery = GetAvailableIngredientQuery(context);
query = from item in query
join t in availableQuery on item.IngId equals t.IngId
select item;
}