Как я могу использовать 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.