Proseguendo nel mio studio riguardo L'Entity Framework mi sono imbattuto nella seguente problematica:

Vorrei effettuare un salvataggio gestito come transazione unica, in una porzione del mio contesto.

Per spiegarmi meglio ho creato il seguente esempio:

Entities context = new Entities(); ///DICHIARO IL CONTESTO
var queryLINQ = (from o in context.Fatture orderby o.dataUltimaModifica select o); //CHIEDO LE FATTURE

foreach (var fattura in queryLINQ) //PER OGNI FATTURA
{

if (!fattura.dettaglio.IsLoaded) //LAZY LOADING
fattura.dettaglio.Load();

foreach (var dettaglio in fattura.dettaglio) //PASSO IL DETTAGLIO DELLE FATTURE
{
dettaglio.prezzo = dettaglio.prezzo + 100 //MODIFICO I VALORI
}

//Vorrei salvare qua tutti i dettagli della fattura corrente prima di passare a quella successiva, e gestire tale operazione in un'unica transazione
// In modo che in caso faccio rollback solo dei dettagli relativi alla fattura corrente
//ma non posso chiamare context.SaveChanges(); che produce l'errore: {"Non sono consentite nuove transazioni perché nella sessione sono presenti altri thread in esecuzione."}
//inoltre opererebbe su tutto il modello e non su solo i dettagli di questa fattura.
}

il mio scopo è fare in modo che tutte le modifiche ai dettagli di una singola fattura vengano effettuati in maniera indipendete rispetto ai dettagli di un'altra fattura.
Cosi facendo mi garantisco di mantenere il lavoro svolto fino a questo momento.

Spero di essere stato chiaro, e di aver fatto una domanda sensata.
Grazie anticipatamente.

- Andrea Bianchi -
Site:http://www.bianchiandrea.com
Premetto che non sono un esperto di Linq ma con MSDTC risolvi.

Ciauz

imperugo
Microsoft MVP
myblog : http://www.tostring.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.