为什么EF生成插入SQL时需要@@ROWCOUNT

5 sql-server entity-framework-6 entity-framework-core

我发现在 INSERT 之后,Entity Framework Core 立即向数据库服务器发送另一个命令:

SELECT [Id]
FROM [Responses]
WHERE @@ROWCOUNT = 1 AND [Id] = scope_identity();
Run Code Online (Sandbox Code Playgroud)

但为什么需要检查@@ROWCOUNT?这不是scope_identity()返回我们需要了解新插入记录的唯一键吗?检查@@ROWCOUNT 是相当多余的,不是吗?

附加信息:

如果我分别插入两行,则只有两个“1 行受影响”文本,而不是“2 行受影响”

在此输入图像描述