public async Task <GetOrderQueryResponse> Handle(GetOrderQuery query, CancellationToken token) { var order = (await repository.Query(x => x.ExternalId == query.OrderId, token)) .SingleOrDefault(); if (order == null) { throw EntityNotFoundException.Of <Order>(query.OrderId); } var itemIds = order.Items.Select(x => x.ItemId).ToList(); var items = await dbContext.Set <Item>() .Where(x => itemIds.Contains(x.Id)) .ToDictionaryAsync(k => k.Id, v => v, token); return(new GetOrderQueryResponse { Order = OrderDto.FromEntity(order, items) }); }