Вы используете второе предложение from
, которое эффективно сглаживает вещи - но тогда вы все еще используете pg
в вашем select
. Смысл DefaultIfEmpty()
заключается в том, что если вы действительно хотите левое внешнее объединение, где вы бы ожидали один результат для каждой действительной комбинации.
Я подозреваю, что вы просто хотите:
var cons = from c in dc.Consignments
join p in dc.PODs ON c.ID equals p.Consignment into pg
select new {
...
PODs = pg
...
}
или возможно
var cons = from c in dc.Consignments
join p in dc.PODs ON c.ID equals p.Consignment into pg
select new {
...
PODs = pg.DefaultIfEmpty()
...
}
... но последний даст вам результат с единственной нулевой записью в PODs
, когда не было никаких POD, что, вероятно, не то, что вы искали.