代码如下:
1 public void Save(Employee emp) 2 { 3 if (emp.EmpId == 0) 4 db.Employee.InsertOnSubmit(emp); 5 try { 6 db.SubmitChanges(); 7 } 8 catch(Exception ex) 9 { 10 string a = ex.Message; 11 } 12 }
这里的emp是传进来了的!但是不知道为什么更新始终无效,会执行db.SubmitChanges();并且try……catch……没有捕捉到错误,新增的时候完全没有问题。泪奔了……大过年的遇到个解决不了的BUG,都睡不着了……
我将try里面的代码改成了这样:
1 var currentEmp=GetModel(emp.EmpId); 2 currentEmp.EmpUserName = emp.EmpUserName; 3 db.SubmitChanges();
就是用传入的emp的Id来查找到这个Employee,然后再把想要改变的属性赋给当前的Employee(currentEmployee),就能更改这个Employee了,我也不知道是为什么,明明传入的emp是有Id的。
百度知道的另一个相关回答:
https://zhidao.baidu.com/question/459527798550124125.html
他们的对话我不是很明白,有人能解惑吗?
当前时间感人:2017/1/27 1:36 [哭泣]
可能是查询 emp 的 db 与 db.SubmitChanges() 的 db 不是同一个实例,遇到过类似现象的问题,详见:对Entity Framework Core的一次误会:实体状态不跟踪
谢大神的解惑!
有可能是你对象参数传错了