Linq-to-entity подзапросы с асинхронным - PullRequest
0 голосов
/ 14 мая 2019

У меня есть асинхронный метод, который генерирует запрос, где я делаю что-то вроде этого:

var query = context.table.AsNoTracking()
    .Where(whereQuery)
    .GroupJoin(...)
    .GroupJoin(... (a, b) => new Lab {
       foo = a.bar
    }
)

Если это просто так, я могу сделать await query.ToArrayAsync(), и все хорошо.Теперь я сталкиваюсь с тем, что мне нужно выполнить подзапрос:

var query = context.table.AsNoTracking()
    .Where(whereQuery)
    .GroupJoin(...)
    .GroupJoin(... (a, b) => new Lab {
       foo = a.bar,
       bar = (
           from x in ... select new { ... }
       )
    }
)

Этот элемент bar представляет собой возвращаемые несколько элементов, поэтому его нельзя выполнить как частьприсоединиться.Как только я это сделаю, я не знаю, как сделать этот внутренний запрос приемлемым.Какой правильный синтаксис использовать для этого?

Основной «внешний» запрос выполняется как вызовы метода, потому что я передаю Expression методу для whereQuery, но иногда эти «внутренние» запросыбудет сделано в любом случае.

Так что я получаю что-то вроде:

[
  {
     "foo": 17,
     "bar": [
         { "a": 12 },
         { "b": 73 }
     ]
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...