为什么ExecuteSqlRawAsync给我“访问冲突”和“堆栈溢出”

时间:2019-11-15 14:12:59

标签: entity-framework-core entity-framework-core-3.0

我正在尝试在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()会给我同样的结果,访问被拒绝。

0 个答案:

没有答案