Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1731, comments - 2327, trackbacks - 356

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Microsoft MVP

My MVP Profile

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

Il mio libro su VB2012!

Il mio nuovo libro su Visual Basic 2012 E' uscito il mio libro "Visual Basic 2012 Unleashed". Clicca sulla copertina per informazioni!

Visual Basic Tips & Tricks Team Member

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!


Guarda i miei webcast MSDN

Altri spazi

CodePlex download Scarica i miei progetti open-source su CodePlex!

Cerca nel blog



Seguimi su Twitter!

Article Categories

Archives

Post Categories

Image Galleries

.NET Framework

Back to basics

Blogroll

Help 1.x e 2.0

Microsoft & MSDN

Setup & Deployment

Visual Basic .NET e 2005

Entity Framework: eccezione "New transaction is not allowed because there are other threads running in the session"

Spesso capita l'esigenza di eseguire un ciclo For..Each su entity set lavorando con ADO.NET Entity Framework. Qualcosa tipo:

For Each animal In MyModel.Animals

     'Do something here...

Next

Nell'esempio di cui sopra l'entity set Animals è di tipo ObjectSet(Of T), dove chiaramente T è un tipo fittizio Animal. Nel ciclare direttamente un oggetto di tipo ObjectSet(Of T) l'EF potrebbe restituire la seguente eccezione:

"New transaction is not allowed because there are other threads running in the session". Per risolvere  il problema è necessario evitare di ciclare direttamente contro l'ObjectSet, il che vuol dire poter usare anche un metodo extension come AsQueryable o ToList:

For Each animal In MyModel.Animals.AsQueryable()

Next

In questo modo sarà possibile eseguire correttamente il ciclo evitando l'errore, ovviamente potrebbe essere preferibile scrivere una query LINQ piuttosto che usare direttamente gli extension, a seconda del contesto.

Alessandro

Print | posted on martedì 17 gennaio 2012 16:58 | Filed Under [ .NET Framework Visual Basic ]

Feedback

Gravatar

# re: Entity Framework: eccezione "New transaction is not allowed because there are other threads running in the session"

Ciao Alessandro.

Come mai viene restituito l'errore "new transaction..." quando si cicla l'objectSet?


Grazie e complimenti per i tuoi chiari e dettagliati articoli tecnici.
13/03/2012 20:54 | Denis

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 8 and 7 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET