2009-08-11 4 views
5

Si consideri il seguente blocco di codice:Da Linq a Sql: l'istanza DataContext può restituire raccolte che includono modifiche in sospeso?

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 
} 

Dato che non ho chiamato

context.SubmitChanges(); 

l'applicazione sarà in uscita contare lo stesso giocatore sia prima che dopo la dichiarazione InsertOnSubmit.

Le mie due domande:

Can collezioni esempio di ritorno DataContext che includono modifiche in sospeso?

Oppure devo riconciliare l'istanza DataContext con context.GetChangeSet()?

risposta

4

Certo, l'uso:

context.GetChangeSet() 

e per ulteriori granularità, ci sono membri di inserimenti, aggiornamenti ed eliminazioni.

EDIT: Capisco la tua nuova domanda ora. Sì, se si desidera includere le modifiche nella raccolta, è necessario combinare in qualche modo le raccolte restituite da GetChangeSet() e le raccolte esistenti.

+0

OK. In realtà, la mia domanda riguarda molto più che semplici conteggi. Ad esempio, se mi interessavano i dati modificati e ho usato context.GetChangeSet(), quindi avrei dovuto riconciliare completamente l'istanza DataContext e il contesto.GetChangeSet(). Grazie per la risposta, però. Ho riformulato la mia domanda per chiarezza. –

+0

Gotcha. Sì, capisco cosa intendi. Credo che fare una combinazione manuale sia l'unico modo per andare qui. – JoshJordan

+0

Grazie, Josh. Lascerò questa domanda aperta per un po '; ma in caso contrario, penso che tu abbia ragione. –

Problemi correlati