1.先查询,再修改
实体是通过上下文获得的,因此上下文立即开始对其进行跟踪。 当您更改跟踪实体的属性值时,上下文会将实体的EntityState更改为Modified,并且ChangeTracker记录旧属性值和新属性值。 调用SaveChanges时,数据库将生成并执行UPDATE语句。如果发现修改值和原始值相同时,State是unchanged
var user = testDbContext.User.Include(a => a.Orders).First(a => a.UserId == 1);
user.FirstName = "zhang";
EntityState ss = testDbContext.Entry(user).State;//unchanged
testDbContext.SaveChanges();
user.FirstName = "zhang1";
EntityState ss1 = testDbContext.Entry(user).State;//modifed
testDbContext.SaveChanges();
var author = context.Authors.First(a => a.AuthorId == 1);
author.FirstName = "Bill";
context.SaveChanges();
exec sp_executesql N'SET NOCOUNT ON;
UPDA