0

I have this Linq code as below:

from objpath in Path
join objOriginalStation in Station on objpath.OriginalStationID equals objOriginalStation.StationID
join objDestinationStation in Station on objpath.DestinationStationID equals 
objDestinationStation.StationID
join objVia1Station in Station on objpath.Via1StationID equals objVia1Station.StationID
join objVia2Station in Station on objpath.Via2StationID equals objVia2Station.StationID
select new ViewModels.PathViewModel
{
    PathID = objpath.PathID,
    SubnetworkID = objpath.SubnetworkID,
    Distance = objpath.Distance,
    DestinationStationID = objpath.DestinationStationID,
    OriginalStationID = objpath.OriginalStationID,
    Via1StationID = objpath.Via1StationID,
    Via2StationID = objpath.Via2StationID,
    Version = objpath.Version,
    OriginalStationName = objOriginalStation.StationName,
    DestinationStationName = objDestinationStation.StationName,
    Via1StationName = objVia1Station.StationName,
    Via2StationName = objVia2Station.StationName,
};

but I thought it's not perfect and I want to improve it, anybody has suggestion?

Masoud Zayyani
  • 157
  • 1
  • 2
  • 12
  • If you are using EF, you should use LINQ to EF and Navigation properties instead of explicit joins (e.g. use hidden joins created by EF by modeling your database properly). How would you remove the joins in SQL? – NetMage Feb 12 '20 at 19:12
  • exactly I'm using EF. – Masoud Zayyani Feb 13 '20 at 09:21
  • Here I Found the solution: [enter link description here](https://stackoverflow.com/questions/3404975/left-outer-join-in-linq) – Masoud Zayyani Feb 26 '20 at 17:20

0 Answers0