Я сталкиваюсь с этим запросом linq для ядра платформы сущностей (2.0).
var result = await dbContext.Table1DbSet
.Where(t1e => t1e.Id == id && t1e.Id2 == id2)
.Select
(
t1e =>
t1e.Table2NavPropICollection.Select
(
t2e => new
{
singleObject = t2e.Table3NavPropObject.TargetObject,
enumerable1 = t2e.Table3NavPropObject.Table4NavPropObject.Table5NavPropICollection.Select(t5e => t5e.TargetObject),
enumerable2 = t2e.Table3NavPropObject.Table6NavPropObject.Table7NavPropICollection.Select(t7e => t7e.TargetObject),
enumerable3 = t2e.Table3NavPropObject.Table8NavPropICollection.SelectMany(t8e => t8e.Table9NavPropICollection.Select(t9e => t9e.TargetObject))
}
)
)
.ToListAsync();
Цель состоит в том, чтобы запросить все ссылочные экземпляры объекта TargetObject, на который ссылается ~ 10 различных таблиц.
В настоящее время он возвращает IEnumerable, где анонимный объект содержит свойства singleObject, enumerable1, enumerable2, enumerable3.Все эти свойства имеют тип TargetObject или IEnumerable.
Могу ли я и каким образом переписать запрос, чтобы не возвращать анонимные объекты, а просто IEnumerable, содержащий все значения?
По какой-то причине компиляторне позволит мне перебрать анонимную коллекцию и выровнять ее вручную.