2009-08-11 4 views
5

Tenir compte du bloc de code suivant:Linq to Sql: l'instance DataContext peut-elle renvoyer des collections incluant des modifications en attente?

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 
} 

Étant donné que je ne l'ai pas appelé

context.SubmitChanges(); 

l'application affichera le même joueur compte à la fois avant et après la déclaration InsertOnSubmit.

Mes deux questions:

peut les collections de retour d'instance DataContext qui incluent des changements en cours? Ou dois-je réconcilier l'instance DataContext avec context.GetChangeSet()?

Répondre

4

Bien sûr, utilisez:

context.GetChangeSet() 

et pour une plus grande granularité, il y a des membres pour les insertions, les mises à jour et suppressions.

EDIT: Je comprends votre nouvelle question maintenant. Oui, si vous souhaitez inclure des modifications dans la collection, vous devez combiner les collections renvoyées par GetChangeSet() et vos collections existantes.

+0

OK. En fait, ma question concerne plus que de simples dénombrements. Par exemple, si je m'intéressais aux données modifiées, et que j'utilisais context.GetChangeSet(), alors je devrais entièrement réconcilier l'instance DataContext et context.GetChangeSet(). Merci pour votre réponse, cependant. J'ai reformulé ma question pour plus de clarté. –

+0

Gotcha. Oui, je vois ce que tu veux dire. Je crois que faire à la combinaison manuelle est la seule façon d'aller ici. – JoshJordan

+0

Merci, Josh. Je vais laisser cette question ouverte un peu. mais sinon, je pense que tu as raison. –

Questions connexes