当使用EF 6.1保存实体时,会生成并执行以下SQL代码:
exec sp_executesql N'INSERT [dbo].[Customers]([Name], [FirstName])
VALUES (@0, @1)
SELECT [CustomerId]
FROM [dbo].[Customers]
WHERE @@ROWCOUNT > 0 AND [CustomerId] = scope_identity()',N'@0 nvarchar(max) ,@1 nvarchar(max) ',@0=N'Wenk',@1=N'Manuel'
我理解,插入/选择是为了在保存后立即检索CustomerId列的值。据我所知,scope_identity()返回该值,那么为什么没有像下面这样的东西
SELECT scope_identity()
有没有什么东西可以避免需要物理读取所有的内容?
谢谢, Manuel