Warum funktioniert meine SubmitChanges () nicht in LINQ-to-SQL?

8

Ich habe eine .MDF-Datenbank in meiner WPF-Anwendung erstellt.

Ich habe dann LINQ-zu-SQL-Klassen erzeugt und LINQ alle Kunden erhalten.

Dann laufe ich durch sie und ändere jeden ihrer Nachnamen.

Wenn ich jedoch SubmitChanges aufruft, bleibt die Datenbank unverändert .

Ich dachte, das war der Zweck von SubmitChanges (), um Änderungen an der Datenbank zu übermitteln?

Was vermisse ich, wie übertrage ich "Änderungen" zurück in meine Datenbank?

%Vor%     
Edward Tanguay 25.02.2009, 14:55
quelle

2 Antworten

15

Ich denke, ich weiß, was das Problem ist. Verwenden Sie eine lokale .mdf-Datei? Wenn dies der Fall ist, überprüfen Sie Ihren bin / debug-Ordner. Ich wette, Sie haben dort eine Datenbank mit den Änderungen. Ich denke, Sie haben eine .mdf-Datei in Ihrem Projekt, die bei jedem Build in den bin / debug-Ordner kopiert wird. Daher werden die Änderungen in der Kopie gespeichert und Sie sehen sie nicht in der Kopie, die sich direkt in Ihrem Projekt befindet.

    
Micah 25.02.2009, 15:01
quelle
2

Stellen Sie sicher, dass Ihre _db zu keinem Zeitpunkt zwischen dem Abrufen und der Änderung auf einen neuen Kontext zurückgesetzt wird, wenn das Problem so gut ist. Außerdem können Sie die Zuordnung Ihrer Datenquelle vereinfachen, indem Sie TheListBox.ItemsSource = _db.Customers; ausführen. Ich habe viele Stellen im aktuellen Code, wo ich genau das mache, was Sie beschreiben, und die Änderungen sind in Ordnung. Ein weiterer Vorschlag, setup logging auf deinen Kontext (setze _db.Log auf einen Writer, ich benutze normalerweise Console.Out , damit ich Änderungen im Ausgabefenster beim Debuggen beobachten kann), so dass du die Änderungen sehen kannst, die tatsächlich bei dir auftreten Rufen Sie SubmitChanges() auf.

    
Quintin Robinson 25.02.2009 15:14
quelle

Tags und Links