gpt4 book ai didi

c# - 一次数据库行程中多个表上的聚合函数的 Linq 等效项

转载 作者:行者123 更新时间:2023-12-04 10:39:56 25 4
gpt4 key购买 nike

我有一个表函数,它返回表名和该表中的条目数:

CREATE FUNCTION [dbo].[ufnGetLookups] ()
RETURNS
@lookupsWithItemCounts TABLE
(
[Name] VARCHAR(100),
[EntryCount] INT
)

AS
BEGIN
INSERT INTO @lookupsWithItemCounts([Name],[EntryCount])
VALUES
('Table1', (SELECT COUNT(*) FROM Table1)),
('Table2', (SELECT COUNT(*) FROM Table2)),
('Table3', (SELECT COUNT(*) FROM Table))

RETURN;
END

什么是上述简单函数的 Linq 等价物?请注意,我想一次性获得结果,操作速度对我来说非常重要。如果我意识到将 linq 转换为 sql 会导致性能下降的庞大庞大的 sql,我宁愿坚持使用现有的用户定义函数而忘记 linq 等效项。

最佳答案

您可以使用 UNION 查询来做到这一点。例如

var q = db.Books.GroupBy(g => "Books").Select(g => new { Name = g.Key, EntryCount = g.Count() })
.Union(db.Authors.GroupBy(g => "Authors").Select(g => new { Name = g.Key, EntryCount = g.Count() }));

var r = q.ToList();

关于c# - 一次数据库行程中多个表上的聚合函数的 Linq 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com