Хорошо, так что название немного сбивает с толку, я думаю. В основном у меня есть эти 3 таблицы:
Line
id | Name
---------
1 | "A-B"
2 | "A-D"
Stop
id | Name
---------
1 | A
2 | B
3 | C
4 | D
LineStop
Id | LineId | StopId | Order
----------------------------
1 | 1 | 1 | 0
2 | 1 | 2 | 1
3 | 2 | 1 | 0
4 | 2 | 2 | 1
5 | 2 | 3 | 3
4 | 2 | 4 | 4
Так что это какая-то система билетов на автобусы, над которой я работаю над личным совершенствованием.
В качестве входных данных я получаю StopId вылета (Stop.Id) и StopId прибытия (Stop.Id). Я хочу выбрать все линии, которые имеют эти две остановки на своих маршрутах (это будет означать, что в таблице LineSop
для одной и той же LineId
у меня будут записи с остановками отправления и прибытия, в конечном итоге я также хотел бы рассмотреть столбец Order
, в котором указывается, в каком порядке шина проходит эти остановки, потому что даже если линия имеет две остановки, которые меня интересуют, если они находятся в обратном порядке, мне все равно не интересно.
Я знаю, что очень желательно показать, что я сделал до сих пор, но я борюсь с условиями «где», которые, кажется, являются здесь ключевым фактором. По какой-то причине я решил присоединиться к Line
с LineStop
:
var lines = _context.Lines.Join(
_context.LineStop,
line => line.Id,
lineStop => lineStop.LineId,
(line, lineStop) => lineStop)
Но тогда .. Мне нужно проверить, есть ли для той же LineId
записи в таблице LineStop
с начальным и конечным значениями StopId
и, в конечном итоге, когда я нашел такие записи, начальный StopId
Порядок меньше чем конец StopId
Заказ.