Как я могу использовать Entity Framework для выполнения MERGE, когда я не знаю, существует ли запись?

Вэтот так ответ о Entity Framework и MERGE, пример того, как кодировать это:

public void SaveOrUpdate(MyEntity entity)
{
  if (entity.Id == 0)
  {
    context.MyEntities.AddObject(entity);
  }
  else
  {
    context.MyEntities.Attach(entity);
    context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
  }
}

Это предполагает, что вы уже знаете, существует ли сущность, которую вы хотите сохранить, или нет; в этом случае вы проверяетеentity.Id, Но что, если вы не знаете, существует этот предмет или нет? Например, в моем случае я импортирую записи из поставщика в свою базу данных, и данная запись может быть или не быть уже импортирована. Я хочу обновить запись, если она существует, в противном случае добавьте ее. Но идентификатор поставщика уже установлен в обоих случаях.

Я не вижу никакого способа сделать это, если я просто не спрашиваю базу данных, есть ли уже запись, что противоречит цели MERGE.

Ответы на вопрос(4)

Ваш ответ на вопрос