Heim > Backend-Entwicklung > C++ > Wie löse ich die Ausnahme „Entity Object Referenced by Multiple Instances of IEntityChangeTracker' in Entity Framework 4.1?

Wie löse ich die Ausnahme „Entity Object Referenced by Multiple Instances of IEntityChangeTracker' in Entity Framework 4.1?

Linda Hamilton
Freigeben: 2025-01-08 21:26:47
Original
515 Leute haben es durchsucht

How to Resolve the

Lösen Sie das Problem „Entitätsobjekte werden von mehreren IEntityChangeTracker-Instanzen referenziert“ in Entity Framework 4.1

Beim Speichern einer Entität, die einen Entitätsverweis mit Entity Framework 4.1 enthält, kann die Ausnahme „Das ADO.Net Entity Framework-Entitätsobjekt kann nicht von mehreren IEntityChangeTracker-Instanzen referenziert werden“ auftreten. Diese Ausnahme tritt normalerweise auf, wenn mehrere Entity Framework-Kontexte dieselbe Entität verwalten.

Im Codeausschnitt erstellen beispielsweise die beiden Serviceklassen EmployeeService und CityService jeweils ihre eigenen Kontextinstanzen. Wenn eine city1-Entität von CityService abgerufen wird, wird sie an den Kontext von CityService angehängt. Wenn später die Mitarbeiterentität e1 erstellt und ihre Referenz city1 zugewiesen wird, werden beide Entitäten dem Kontext von EmployeeService hinzugefügt.

Dadurch wird city1 an zwei verschiedene Kontexte angehängt, was die Ausnahme verursacht.

Lösung:

Methode 1: Verwenden Sie einen einzelnen Kontext

Erstellen Sie eine einzelne Kontextinstanz und fügen Sie sie in zwei Serviceklassen EmployeeService und CityService ein:

<code class="language-csharp">var context = new YourDbContext(); // 创建单例上下文
EmployeeService es = new EmployeeService(context);
CityService cs = new CityService(context); // 使用相同的上下文实例</code>
Nach dem Login kopieren

Methode 2: Dienste zusammenführen

Konsolidieren Sie verwandte Entitäten in einem einzigen Dienst, der für alle Entitätsinteraktionen verantwortlich ist. Dieser Ansatz vereinfacht die Manipulation von Beziehungen zwischen Entitäten.

Mit der oben genannten Methode können Sie die Ausnahme „Das Entitätsobjekt kann nicht von mehreren IEntityChangeTracker-Instanzen referenziert werden“ vermeiden und die Entität mit der Entitätsreferenz erfolgreich speichern.

Das obige ist der detaillierte Inhalt vonWie löse ich die Ausnahme „Entity Object Referenced by Multiple Instances of IEntityChangeTracker' in Entity Framework 4.1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage