Wie kann ich mit Entity Framework eine MERGE durchführen, wenn ich nicht weiß, ob der Datensatz vorhanden ist?

Imdiese SO Antwort über Entity Framework und MERGE, das Beispiel für die Codierung lautet wie folgt:

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

Dies setzt voraus, dass Sie bereits wissen, ob die Entität, die Sie stören möchten, existiert oder nicht. In diesem Fall überprüfen Sieentity.Id. Aber was ist, wenn Sie nicht wissen, ob der Artikel existiert oder nicht? In meinem Fall importiere ich beispielsweise Datensätze eines Anbieters in meine Datenbank, und ein bestimmter Datensatz wurde möglicherweise bereits importiert oder nicht. Ich möchte den Datensatz aktualisieren, falls vorhanden, andernfalls ihn hinzufügen. In beiden Fällen ist die ID des Anbieters bereits festgelegt.

Ich sehe keine Möglichkeit, dies zu tun, es sei denn, ich frage einfach die Datenbank, ob der Datensatz bereits vorhanden ist, was den gesamten Zweck von MERGE zunichte macht.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage