2017-10-11 1 views
0

Ich arbeite derzeit an einem Projekt in WPF mit einem Entity Framework in der Vergangenheit. Ich habe eine Tabelle namens Category, die Id, CatNumber, CatName enthält. Ich habe auch eine Produkttabelle, in der ein Produkt eine Eins-zu-Eins-Beziehung zu Kategorie hat. Im Moment versuche ich, eine Art von Arbeitseinheit Service zu erstellen, der um es herum verwendet, also muss nicht Kontext während der Lebensdauer der Anwendung öffnen. Bei einer meiner Fragen zum DBContext möchte ich eine Liste aller Artikel zu einem Auftrag. Ich versuche zu verwenden:WPF Entity Framework, Include verdoppelt Daten

from model in 
mainDBContext.Include(o=>o.OrderList.Select(p=>p.Articles.Select(c=>c.Category))) 
where model.CustomerID == 5 select model 

Das Problem, das ich habe ist, dass, wenn Änderungen an den Artikeln Speichern aktualisiert sie meine Kategorie-Tabelle mit einer neuen Zeile mit doppelten Daten aus der Reihe meiner Artikel. Die Artikelzeile hat jetzt eine categoryID-Verbindung zur neu hinzugefügten Zeile anstelle der ersten Zeile.

Gibt es ein Problem mit den Includes oder ist es ein Problem mit den Beziehungen oder ...?

+0

Versuchen https://stackoverflow.com/questions/6249837/entity-framework-creates-foreign-key-objects-instead-of-using-those-that-are-alr – Kris

+0

Danke, ich in das aussehen . – Mrq

Antwort

0

Das ist, weil, wenn Sie Ihr Unternehmen versucht, zu aktualisieren, ist das Unternehmen zu einem anderen Kontext gehört, die Sie es aus, dass, sollten alle, was Sie tun, ist Ihr Unternehmen mit Ihrem aktuellen Kontext zu befestigen, einige Code wie folgt aus:

context.Articles.Attach(*YourEntityInstance*); 
+0

Danke, aber wenn ich ein komplexes Objekt als eine Bestellung habe, die eine Liste von Artikeln enthält, die die Kategorie enthält. Muss ich alle Artikel durchlaufen und auf das Category-Objekt zugreifen und an ihnen alle anhängen? – Mrq

+0

@Mrq Ja, Sie sollten eine einfache Methode implementieren und alle Childs, die nicht im Kontext in einer tiefen Ebene, die Sie benötigen, anfügen –

Verwandte Themen