在实体框架中,你必须编写大量代码来保存或更新单个实体:
using (DataContext context = new DataContext())
{
context.Task.Attach(task);
if (task.ID == 0)
{
context.ObjectStateManager.ChangeObjectState(task, System.Data.EntityState.Added);
}
else
{
context.ApplyOriginalValues(task.GetType().Name, task);
}
context.SaveChanges();
}
在休眠状态下,它只是saveOrUpdate()
这不是懒惰,这是为了使它简短和干净。
没有等价物。你必须这样写:
using (DataContext context = new DataContext())
{
context.Task.Attach(task);
if (task.ID == 0)
{
context.ObjectStateManager.ChangeObjectState(task, System.Data.EntityState.Added);
}
else
{
context.ObjectStateManager.ChangeObjectState(task, System.Data.EntityState.Modified);
}
context.SaveChanges();
}