2009-08-11 2 views
5

Betrachten Sie den folgenden Codeblock:Linq to Sql: Kann die DataContext-Instanz Sammlungen zurückgeben, die ausstehende Änderungen enthalten?

using (PlayersDataContext context = new PlayersDataContext()) 
{ 
    Console.WriteLine(context.Players.Count()); // will output 'x' 
    context.Players.InsertOnSubmit(new Player {FirstName = "Vince", LastName = "Young"}); 
    Console.WriteLine(context.Players.Count()); // will also output 'x'; but I'd like to output 'x' + 1 
} 

Da ich nicht

context.SubmitChanges(); 

die Anwendung Ausgang der gleiche Spieler beide zählen vor und nach der Anweisung InsertOnSubmit genannt haben.

Meine zwei Fragen:

Können die Instanz Rückkehr Sammlungen, die Datacontext ausstehenden Änderungen enthalten?

Oder muss ich die DataContext-Instanz mit context.GetChangeSet() abgleichen?

Antwort

4

Sicher, Verwendung:

context.GetChangeSet() 

und für mehr Granularität gibt es Mitglieder für Einfügungen, Aktualisierungen und Löschungen.

EDIT: Ich verstehe Ihre neue Frage jetzt. Ja, wenn Sie Änderungen in die Sammlung aufnehmen möchten, müssten Sie die von GetChangeSet() zurückgegebenen Sammlungen und Ihre vorhandenen Sammlungen irgendwie kombinieren.

+0

OK. Eigentlich betrifft meine Frage mehr als nur einfache Zählungen. Zum Beispiel, wenn ich an modifizierten Daten interessiert war, und ich Context.GetChangeSet(), dann würde ich die DataContext-Instanz und context.GetChangeSet() vollständig abstimmen müssen. Danke für Sie beantworten, obwohl. Ich habe meine Frage zur Klarheit neu formuliert. –

+0

Gotcha. Ja, ich verstehe was du meinst. Ich glaube, dass die manuelle Kombination der einzige Weg ist, um hierher zu kommen. – JoshJordan

+0

Danke, Josh. Ich werde diese Frage für eine Weile offen lassen; aber ansonsten denke ich, dass du recht hast. –