运行 Microsoft.EntityFrameworkCore 7.0.13,Dotnet 版本 6.0.400-preview.22330.6,我对我的数据库(托管在 Azure 数据库上)表“模板”进行了测试查询,其中有 3 个条目
CREATE TABLE [templates] (
[template_id] int PRIMARY KEY IDENTITY(1,1) NOT NULL,
[is_premium] bit NOT NULL,
[is_cover] bit NOT NULL,
[name] varchar(50) NOT NULL,
[docx_file] varchar(50) NOT NULL,
[html_file] varchar(50) NOT NULL
)
运行此 C# 代码需要整整 2 秒才能打印出 3 个项目名称。
var s = Stopwatch.StartNew();
foreach (var item in dBContext.Templates)
{
Console.WriteLine(item.Name);
}
s.Stop();
通过 SSMS18 对同一数据库运行此操作时
set statistics time on
select [name] from templates
set statistics time off
运行时间不到一毫秒。 为什么实体框架需要这么长时间?我可以做什么来加快速度?该表没有引用任何内容并且只有 3 个条目?
@Maytham Fahmi 是对的,我错误地判断了 foreach console.writeline 需要花费多少时间。