今天发现Entity Framework添加记录会返回新记录Id

testContext db = new testContext();
Pet cat = new Pet();
cat.Name = "cat";
db.Pets.Add(cat);
db.SaveChanges();

在SQL Server Profiler跟踪上边程序执行情况时,看到服务器执行SQL语句为:

引用内容 引用内容
exec sp_executesql N'insert [dbo].[Pet]([PersonId], [Name])
values (@0, @1)
select [Id]
from [dbo].[Pet]
where @@ROWCOUNT > 0 and [Id] = scope_identity()',N'@0 int,@1 nvarchar(20)',@0=0,@1=N'cat'

很明显,添加记录后马上返回了新记录,这是不是意味着Entity Framework在添加记录后会对实体进行更新?那就可以直接取新记录Id了?测试了下,猜想是正确的:)

评论: 0 | 引用: 0 | 查看次数: 3548
发表评论
登录后再发表评论!