Я думаю, что вы хотите сделать, это что-то вроде этого:
var st1 = (from a in db.RouteDetail
where a.Station == "Гродно"
select new
{
a.Route,
});
var st2 = (from c in db.RouteDetail
where c.Station == "Лида"
select new
{
c.Route,
});
И st1, и st2 теперь содержат IQueryable
типы, которые позволяют вам перечислять их. Я предполагаю, что ваши два запроса возвращают только один результат, в этом случае:
var station1 = st1.FirstorDefault();
var station2 = st2.FirstorDefault();
var res = (from d in db.RouteDetail
where station1.Route == station2.Route
select d);
Будет делать то, что вам нужно (если они возвращают результат, здесь нет никакой безопасности для нулевых исключений) Однако, если есть более одного результата, он вернет только первое совпадение. В этом случае вам нужно будет отработать все возможные композиции из значений в st1
и st2