У меня есть запрос, который выглядит следующим образом (ядро Entity Framework 2.2.7):
var query = from row in _entities.MyEntities
.Include(e => e.MyEntityChildren)
.Include(e => e.MyParent)
.Include(e => e.MyParent2)
.Include(e => e.MyParent3)
.Include(e => e.MyParent4)
where row.MyParent4.Id == "whatever" &&
dict.Contains(row.Id) &&
active.Contains(row.Status)
select row;
Тогда у меня разные результаты в зависимости от того, как я выполняю запрос:
var e = await query.FirstOrDefaultAsync();
Работает правильно
var e = await query.Distinct().ToListAsync();
Не заполняет MyParent3. Но оба запроса включают все остальные отношения.
Так что мой вопрос. Это известная проблема? В чем разница между первым и списком? И знает ли что-нибудь, как ее решить?
Сгенерированный sql выглядит одинаково, и MyParent3 выбирается из базы данных в обоих случаях, поэтому я подозреваю, что это что-то с сериализатором. Это работало в ядре платформы сущностей 2.0.9
РЕДАКТИРОВАТЬ: забыл отличить!