я в настоящее время получить результаты функция 2 агрегировать таким образом:Объединить Агрегатные функции на нескольких таблиц с использованием Entity Framework
var fooCount = ctx.Foo.Count();
var barCount = ctx.Bar.Count();
Это производит 2 различных запросов SQL. Я ищу способ объединить их в один запрос.
В простой SQL я могу объединить эти два запроса таким образом:
SELECT
(SELECT COUNT(*) FROM Foo) AS FooCount,
(SELECT COUNT(*) FROM Bar) AS BarCount
Как мы можем сделать это с помощью Entity Framework? Все, что я нашел, было для multiple aggregate function in the same table. Но в моем случае это разные таблицы.
Я пытался что-то вроде этого, но безуспешно:
var query = from together in (new
{
FooCount = db.Foo.Count(),
BarCount = db.Bar.Count()
}) select together; //<-- visual studio let me not write "select together;"
Вы создаете Анонимные типы, а не 'IEnumerable', почему не' новый ИНТ [] {ctx.Foo.Count(), ctx.Bar.Count()} ' –
Я пытаюсь выполнить это в одном запросе. @ArturoMenchaca –
@ArturoMenchaca Каждый вызов 'Count' собирается создать отдельный SQL-вызов, и OP хочет объединить их в один. – juharr