Решение от @BrokenGlass прекрасно.Однако, если у вас есть отношение 1..many, редко требуется использовать оператор соединения в LINQ.В этом примере, если company-> personell был 1..many, я написал бы запрос следующим образом:
var results = from c in company
where c.associate == "ml"
from p in c.personnel
where p.last_name == "marley"
orderby c.coverage_status asc
select new
{
c.ticker,
c.primary_analyst,
p.last_name,
c.research_associate,
c.secondary_associate,
c.coverage_status
};
Это также можно записать с использованием синтаксиса цепочки выражений:
var results = company.Where(c => c.associate == "ml")
.SelectMany(c => c.personnel, (c, p) => new
{
c.ticker,
c.primary_analyst,
p.last_name,
c.research_associate,
c.secondary_associate,
c.coverage_status
})
.Where(x => x.last_name == "marley")
.OrderBy(x => x.coverage_status)