以下是插入和更新记录的常用方法,插入工作正常但更新不适用于以下内容:
代码:
Public void Save(Employee e)
{
using (var context = new SchoolManagementDataContext())
{
if(e.id > 0) //For Update Part
{
var data=context.Employee.FirstorDefault(x=>x.EmployeeId==e.eid);
data.Employeename=e.name;
//rest other fileds to update.
context.SubmitChanges();
}
else
{
context.Employee.InsertonSubmit(e);
context.SubmitChanges();
}
}
}
我不知道为什么,但记录没有得到更新。
答案 0 :(得分:1)
你在if
条件中输了一个拼写错误:
if(employee.id > 0) // Not sure where employee is coming from
我猜这应该是:
if(e.id > 0) // Update specified employee
答案 1 :(得分:1)
我认为,您需要UpdateOnSubmit()方法。试试这个:
Public void Save(Employee e)
{
using (var context = new SchoolManagementDataContext())
{
if(e.id != null) //For Update Part
{
var data=context.Employee.FirstorDefault(x=>x.EmployeeId==e.eid);
data.Employeename=e.name;
//rest other fileds to update.
context.Employee.UpdateOnSubmit();
context.SubmitChanges();
}
else
{
context.Employee.InsertonSubmit(e);
context.SubmitChanges();
}
}
}
UpdateOnSubmit:
public virtual void UpdateOnSubmit(T Entity)
{
myEntities.Attach(Entity);
context.Entry(Entity).State = EntityState.Modified;
}