我想從這樣的多個表中查詢聚合值。
SELECT
(SELECT MAX(`A`) FROM `TableA`) as `MaxA`,
(SELECT COUNT(`A`) FROM `TableA` WHERE A > 55) as `CountA`,
(SELECT MIN(`B`) FROM `TableB`) as `MinB`
有沒有辦法在一個查詢中在 EF Core 中執行類似的操作?
uj5u.com熱心網友回復:
你可以做UNION ALL查詢。
var query = ctx.TableA.GroupBy(x => 1)
.Select(g => g.Max(a => a.A))
.Concat(
ctx.TableB.GroupBy(x => 1)
.Select(g => g.Max(b => b.B))
);
此外,如果您不受第三方使用限制:linq2db.EntityFrameworkCore,請注意我是創建者之一。
那么這個查詢可以用簡單的方式撰寫
using var db = ctx.CreateLinqToDBConnection();
var result = db.Select(() => new
{
A = ctx.TableA.Max(a => a.A),
B = ctx.TableB.Max(b => b.B)
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435496.html
標籤:C# 。网 .net-core 实体框架核心 ef-core-3.1
