Wie loswerden "Ein Entitätsobjekt kann nicht von mehreren Instanzen von IEntityChangeTracker referenziert werden"?

entity-framework

Frage

Ich habe ein Modell in Ado.Net EF. Ich habe eine Eins-zu-viele-Beziehung und wenn ich die Entitäten hinzufügen möchte, erhalte ich den Fehler

"Ein Entitätsobjekt kann nicht von mehreren Instanzen von IEntityChangeTracker referenziert werden."

Irgendeine Ahnung?

Etwas Ähnliches

Template template = new Template();
...
...
while (from < to)
{
    Course course = new Course();
    .....
    template.Course.Add(course);
    .....
}
courseEntities.AddToTemplate(template); // Problem line
courseEntities.SaveChanges();

Akzeptierte Antwort

Ich erhielt diese Nachricht, bis ich anfing, den Datenkontext in der HttpContext.Items- Eigenschaft zu speichern. Das bedeutet, dass Sie denselben Datenkontext für die aktuelle Webanforderung verwenden können. Auf diese Weise enden Sie nicht mit zwei Datenkontexten, die auf dieselben Entitäten verweisen.

Hier ist ein guter Beitrag zu DataContext Life Management .

Ich hoffe, es hilft.

Dave


Beliebte Antwort

"template" oder etwas, auf das es verweist, wurde bereits zu courseEntities oder einem anderen Kontext hinzugefügt. Ich sehe nichts in dem Code, den Sie zeigen, dass es das tun würde, aber es passiert sicherlich. Möglicherweise geschieht dies in einem Teil des Codes, den Sie getrimmt haben. Sehen Sie sich die EntityState-Eigenschaft von "template" im Debugger an, und sehen Sie sich auch den EntityState der Eigenschaften von "template" an. Dies sollte Ihnen helfen, herauszufinden, welche Entitätsinstanz sich bereits in einem Kontext befindet.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum