Ответ 1
В основном вы хотите сделать левое внешнее соединение. Способ, которым вы в настоящее время используете метод DefaultIfEmpty, состоит в том, что если весь список пуст, вы предоставляете единственную запись по умолчанию.
Вам следует присоединиться к PassengerDetails
, и для каждого списка сведений о пассажирах по умолчанию указывается значение по умолчанию. Это эквивалент левого внешнего соединения, и это немного похоже на это:
var data = from fd in FlightDetails
join pd in PassengersDetails on fd.Flightno equals pd.FlightNo into joinedT
from pd in joinedT.DefaultIfEmpty()
select new {
nr = fd.Flightno,
name = fd.FlightName,
passengerId = pd == null ? String.Empty : pd.PassengerId,
passengerType = pd == null ? String.Empty : pd.PassengerType
}