Когда я пытаюсь использовать selectMany для запроса, который я строю против cosmosdb, я всегда получаю исключение:
Выражение LINQ 'DbSet .Where (t => t.Id == __timelineId_0) .SelectMany (source: t => EF.Property> (t, "GraduationEvents") .AsQueryable (), collectionSelector: (t, c) => new TransparentIdentifier (Outer = t, Inner = c)) 'не удалось быть переведенным. Либо переписать запрос в форме, которую можно перевести, либо переключиться на оценку клиента явно, вставив вызов либо в AsEnumerable (), AsAsyncEnumerable (), ToList (), либо в ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.
Запрос не имеет значения, всегда, когда я использую selectMany, я получаю эту ошибку.
Пример запроса:
await _dbContext.Timelines.Where(x => x.Id == timelineId).Select(x => x.GraduationEvents).SelectMany(x => x).ToListAsync();
Моя конфигурация объекта:
public void Configure(EntityTypeBuilder<Timeline> builder)
{
builder.HasKey(x => x.Id);
builder.HasAlternateKey(x => x.Id);
builder.OwnsMany(x => x.GraduationEvents, x => x.OwnsMany(graduationEvent => graduationEvent.Subjects));
}
Я также пытался использовать нативный cosmosClient, но когда я запрашиваю базу с простым sql, я получаю пустые объекты (все нули). Есть мысли, что я делаю не так?
Саджид - я попробовал ваше решение, но исключение осталось прежним