连接它修改前,修改,然后保存更改。
public void UpdateEmployee(int empId, int deptId, int level)
{
Employee emp = GetEmployee(empId);
using (var dbContext = new MyDbContext())
{
dbContext.Employees.Attach(emp);
emp.DeptId = deptId;
emp.Level = level;
//this is having no effect?
dbContext.SaveChanges()
}
}
你也可以将其固定,然后将状态设置为修改:
public void UpdateEmployee(int empId, int deptId, int level)
{
Employee emp = GetEmployee(empId);
emp.DeptId = deptId;
emp.Level = level;
using (var dbContext = new MyDbContext())
{
dbContext.Employees.Attach(emp);
dbContext.Entry(emp).State = EntityState.Modified;
dbContext.SaveChanges()
}
}
如果你只想在更新,而不是所有列发送这些字段:
public void UpdateEmployee(int empId, int deptId, int level)
{
Employee emp = GetEmployee(empId);
emp.DeptId = deptId;
emp.Level = level;
using (var dbContext = new MyDbContext())
{
dbContext.Employees.Attach(emp);
dbContext.Entry(emp).Property(p => p.DeptId).IsModified = true;
dbContext.Entry(emp).Property(p => p.Level).IsModified = true;
dbContext.SaveChanges()
}
}
你的'GetEmployee'方法是如何工作的?你确定它会返回正确的结果吗? –