I have a train database, with all required fields such as Train, Route, Station, Passenger, Reservation etc. I want to get trains between a pair of stations using LINQ(I know the SQL Query, but I am unable to convert it to LINQ). Please anyone help me.
One more thing, I want the Extension method approach of LINQ Queries(not the keywords like from, in, select), like
var trains = _context.Trains.FirstOrDefault(a => a.Id == text);
The SQL Query
SELECT Route.TrainId, Train.TrainName
FROM Route
INNER JOIN Train ON Route.TrainId=Train.TrainId
WHERE
(Route.StationId IN
(SELECT Source.StationId
FROM Route AS Source
INNER JOIN Route AS Destination ON Source.TrainId=Destination.TrainId
WHERE
(Source.StopNumber - Destination.StopNumber < 0)
AND
(Source.StationId = @Source)
AND
(Destination.StationId = @Destination)
)
)
Please comment me if you want any more details like table structures. I got the table structure and queries from an online slide.