New transaction is not allowed because there are other threads running in the session

Bu hatayı alıyorsanız aşağıdaki gibi bir set çekip for ile dönüp her seferinde context.SaveChanges(); diyorsunuz demektir.

           NewCtx newContex = new NewCtx();
            var result = (from x in NewCtx.Table where x.IsActive== true select x).ToList();
            foreach (var item in result)
            {
                Planning p = new Planning();
                p.TableID= item.ID;
                newContex.AddToPlannind(p);
                newContex.SaveChanges();
            }

var tanımı yüzünden EntitiyFramework sapıtıyor, sebebini henüz bulamadım. Eğer bu şekilde kullanacaksanız SavChanges() koutunu for’un dışında vermeniz gerekiyor. Eğer aynı şekilde kullanmaya devam etmek istiyorsanız var yerine IList

şeklinde tanımlarsanız çalışacaktır.

           NewCtx newContex = new NewCtx();
            IList (table) result = (from x in NewCtx.Table where x.IsActive== true select x).ToList();
            foreach (var item in result)
            {
                Planning p = new Planning();
                p.TableID= item.ID;
                newContex.AddToPlannind(p);
                newContex.SaveChanges();
            }
10 November 2011
Okunma
bosluk
 Son Yazılar FriendFeed
reklam
seo kitabı
reklam
reklam

Translate

EnglishFrenchGermanItalianPortugueseRussianSpanishTurkish