Запрос объектов на основе собственной коллекции с EFCore 3.1 и CosmosDb - PullRequest
0 голосов
/ 27 января 2020
        var dbContext = new DarthBotDbContext(builder.Options);
        var guid = Guid.Parse("4ba0e7cf-518a-4f44-8a06-047721350ed6");
        var bots = dbContext.Bots.Where(x =>
            x.BotOrders.Select(bo => bo.Id).Contains(guid)).ToList();

Коллекция BotOrders является просто автоматическим свойством List.

    public List<BotOrder> BotOrders { get; set; }

DbContext имеет эту соответствующую строку в OnModelCreating:

        mb.Entity<Bot>().OwnsMany(x => x.BotOrders);

Выдает это исключение:

System.InvalidOperationException: 'выражение LINQ' DbSet .Where (b => EF.Property> (b, "BotOrders") .AsQueryable () .Select (o => o.Id) .Contains (__ guid_0)) не может быть переведено. Либо переписайте запрос в форме, которую можно перевести, либо переключитесь на оценку клиента явно, вставив вызов либо в AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации. '

Как должен быть написан этот запрос?

...