web-dev-qa-db-ger.com

Wie löse ich zuerst Objekte in Entity Framework Code?

Auf dem DbContext gibt es keine Detach(object entity).

Kann ich zuerst Objekte im EF-Code entfernen?

129
Shawn Mclean

Wenn Sie ein vorhandenes Objekt entfernen möchten, befolgen Sie die Anweisungen von @ Slauma. Wenn Sie Objekte laden möchten, ohne Änderungen nachzuverfolgen, verwenden Sie:

var data = context.MyEntities.AsNoTracking().Where(...).ToList();

Wie im Kommentar erwähnt, werden Entitäten dadurch nicht vollständig getrennt. Sie sind immer noch angehängt und das verzögerte Laden funktioniert, aber Entitäten werden nicht verfolgt. Dies sollte zum Beispiel verwendet werden, wenn Sie eine Entität nur zum Lesen von Daten laden möchten und nicht vorhaben, diese zu ändern.

138
Ladislav Mrnka

Dies ist eine Option:

dbContext.Entry(entity).State = EntityState.Detached;
215
Slauma