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.
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!
Çö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();
{
a.name = "Kodstrap";
}
context.SaveChanges();
using(kodDbEntities db = new kodDbEntities())
{
//Kodlar
}
{
//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
Yorum Gönder