实体框架对于几乎空的数据库花费了极长的时间

问题描述 投票:0回答:1

运行 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 个条目?

c# sql entity-framework
1个回答
0
投票

@Maytham Fahmi 是对的,我错误地判断了 foreach console.writeline 需要花费多少时间。

© www.soinside.com 2019 - 2024. All rights reserved.