не нужно тут выполнять 2 отдельных запроса, все можно достать одним же
var products = from p in context.Products
join o in context.Orders on p.Order_Id equals o.Id
where o.Id == <НОМЕР ЗАКАЗА>
select p;
АПД:
LINQ запросы ленивые. Этот код просто построит запрос, но не будет выполнять его до момента пока на самом деле не понадобяться данные. Если нужно их передать в другой контекст - можно сразу сделать что-то типа .AsEnumerable() чтоб загрузить все данные в память.