У меня есть запрос, который сводит меня с ума, когда я запускаю его в sql, он работает нормально, но я не знаю, как изменить его на linq на sql
запрос:
SELECT organizationstructure.PositionTitle.Title, organizationstructure.Person.FirstName, organizationstructure.Person.LastName,
organizationstructure.Department.Name
FROM organizationstructure.Department INNER JOIN
organizationstructure.Accountability AS Accountability_1 ON organizationstructure.Department.PartyId = Accountability_1.ParentPartyId INNER JOIN
organizationstructure.Accountability INNER JOIN
organizationstructure.Person ON organizationstructure.Accountability.ChildPartyId = organizationstructure.Person.PartyId INNER JOIN
organizationstructure.Position ON organizationstructure.Accountability.ParentPartyId = organizationstructure.Position.PartyId ON
Accountability_1.ChildPartyId = organizationstructure.Position.PartyId INNER JOIN
organizationstructure.PositionTitle ON organizationstructure.Position.PositionTitleId = organizationstructure.PositionTitle.PositionTitleId
и я думаю, что это неправильно, но я изменил его на:
query// query is iqueryable of position
.Join(Repository<Accountability>.Find(), p => p.Id, a => a.Child.Id,
(p, a) => new Tuple<string, string, int?>(((Department)a.Parent).Name, p.PositionTitle.Title, p.Id))
.Join(Repository<Accountability>.Find(), p => p.Item3, p => p.Parent.Id,
(p, d) => new Tuple<string, string, int?, string>(p.Item1, p.Item2, p.Item3, d.Child == null ? string.Empty : string.Format("{0}", ((Person)d.Child).FirstName) + " " + ((Person)d.Child).LastName))
что с ним не так или я могу изменить этот запрос ??