Что эквивалентно для Hibenate.saveOrUpdate () в платформе сущностей - PullRequest
4 голосов
/ 26 сентября 2011

В структуре сущностей вы должны написать много кода для сохранения или обновления одной сущности:

 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()

Речь идет не о том, чтобы быть ленивым, а о том, чтобы сделать его коротким и чистым.

1 Ответ

4 голосов
/ 26 сентября 2011

Нет эквивалента. Вы действительно должны написать это как:

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();
 }
...