如题,EntityFramework 如何更新 detached 实体,如下代码不能更新:
Product p = null;
using (EFDbContext context = new EFDbContext()) {
p = context.Products.First();
}
using (EFDbContext context = new EFDbContext()) {
p.Remark = "aaa";
context.SaveChanges(); //不能更新
}
可如下更新 Detached 状态的实体:
using (EFDbContext context = new EFDbContext()) {
p.Remark = string.Format("更新时间 {0:F}", DateTime.Now);
context.Entry(p).State = EntityState.Modified;
context.SaveChanges();
}
太简单了
你的两个context是同一个吗?都是new出来的,根本就不是同一个。
这个还要考虑实体是不是 代理对象,如果不是还要处理一下。