我正在尝试在EF Core 3.0上使用以下命令来清理临时表(记录超过100万条)。
private async Task DeleteTempData()
{
await _dbContext.Database.ExecuteSqlRawAsync(
@"
TRUNCATE TABLE dbo.[TempRawRoles];
"
);
}
结果是在“输出”窗口'Access violation'
中出现此错误,在调试控制台中,我得到了'Stack overflow.'
,并且没有更多信息可以继续。
Truncate查询可以直接在SQL Server上运行而没有任何问题,而且我也很厚脸皮,可以这样做(有效):
_dbContext.TempRawRoles.FromSqlRaw(@"
TRUNCATE TABLE dbo.[TempRawRoles];
SELECT TOP 0 FROM dbo.[TempRawRoles];
");
为什么ExecuteSqlRawAsync
不起作用?
我在做什么错了?
我宁愿以“适当”的方式进行操作,而不要偷偷摸摸地进行破解(例如FromSqlRaw)。
更新:尝试致电_dbContext.Database.GetDbConnection()
会给我同样的结果,访问被拒绝。