0

我有使用实体框架创建/插入记录的场景,但我不关心保存操作完成后的状态 - Web 服务环境。

SQL Server 端的典型跟踪:

exec sp_executesql N'insert [dbo].[Log]([CreatedOn], [DeviceKey], [DeviceTime], [Message], [Source], [StackTrace], [Category], [Priority])
values (@0, @1, @2, @3, @4, @5, @6, @7)
select [LogKey]
from [dbo].[Log]
where @@ROWCOUNT > 0 and [LogKey] = scope_identity()',N'@0 datetime2(7),@1 int,@2 datetime2(7),@3 varchar(250),@4 varchar(250),@5 varchar(max) ,@6 tinyint,@7 tinyint',@0='2012-08-30 21:43:16.6633154',@1=6,@2='2012-08-30 21:43:14.4310000',@3='Test 2',@4='',@5='Somewhere',@6=0,@7=3

EF插入部分select [LogKey] from dbo.Log where @@ROWCOUNT > 0 and LogKey = scope_identity()

我真的不希望这段代码运行。是否可以阻止 EF 这样做?

4

1 回答 1

1

如果您使用的是数据库生成的密钥(身份列),则无法避免这种情况。EF 需要自动生成的 ID 作为其插入逻辑的一部分。

于 2012-08-31T08:55:13.953 回答