New transaction is not allowed because there are other threads running in the session hatası çözümü

Bu hata oluştuğunda Entity Framework " An error occurred while starting a transaction on the provider connection. See the inner exception for details." hatasını fırlatıyor iç hataya baktığımızda "New transaction is not allowed because there are other threads running in the session " bu hatayı görüyoruz. Sebebi foreach veya for döngüsü içinde değişiklik kaydetme işlemi yaptığımızda fırlatıyor. (context.SaveChanges())
Çözümü:
Kayıt işlemini döngülerin dışına almak

Bugün sebebini bilmediğim bir durumdan aynı hatayı aldım ama döngü kullanmamıştım ya da kullandığım yeri bulamadım. O yüzden şöyle bir şey yaptım. Lazım olan yeri ayrı bir context içine alarak işlemi tamamlayabildim.


foreach(var a in data)
{

       a.name = "Kodstrap";

}

context.SaveChanges();


using(kodDbEntities db = new kodDbEntities())
{
     //Kodlar
}

Yani döngü kullanmadan böyle bir şey denk gelirse bu şekilde işlemi devam edebilirsiniz.

Kaynak: http://www.kodstrap.com/makale/new-transaction-is-not-allowed-because-there-are-other-threads-running-in-the-session-hatasi-cozumu

İyi Kodlar!

Yorumlar