rob33n adlı üyeden alıntı: mesajı görüntüle
Normalde başlı başına bir fonksiyon olsaydı transaction kullanma derdim ama yazdığın koddan anladığım kadarıyla öncesinde action üzerinden geliyor ve sen fonksiyona yönlendiriyorsun.
Eğer öyle ise ve action'da var db = new UretimEntities(); kullanmış ve aynı objelerden birisini attach etmişsen fonksiyonda aynı objeyi tekrar attach ettiğin için hata vermesi kaçınılmaz.

EF5'te AddRange olmadğı için OguzK'nın verdiği ilk kodu kullanamazsın ama ilişkilerin olduğu için ikinci verdiği kod çok daha kullanışlı.

Bir diğer olasılık ise asamalar kısmı. Foreach ile dönerken muhtemelen asamaların propery'si aynı olduğundan yine context üzerine aynı objeyi attach etmeye çalışıyorsun ve yine changetracker hatası alman kaçınılmaz.

Eğer kodların tamamını paylaşabilirsen daha net yardımcı oluruz.


Kullandığım operasyonu @OguzK nın dediği gibi güncelledim. Aşamalar tablosunda birden çok tabloya ait foreign keyler mevcut. Hatayı bundan dolayı veriyor. Ben muhtemelen ekran tarafında da yanlış kullanıyorum. Kodun içerisinde de görüldüğü üzere Aşamalar tablosundan Aşama tablosuna foreign key var ve ben bu değere null atadıktan sonra eklemeyi yapıyor.

Ekran tarafında da şöyle birşey yapıyorum aslında kısaca açıklayım;

tblModelUretimAsama tablosunda AsamaID diye bir alan var. Kullanıcı grid üzerinde combodan aşamalardan birisini seçtiği zaman ben bu seçilen elemanın ID sini tblModelUretimAsama.AsamaID ye set ediyorum. Ama gridde seçilen kayıt kayboluyor seçimi yaptıktan sonra o yüzden şöyle birşey yapıyorum

tblModelUretimAsama.tblAsama = (combodan seçilen elemanı direk atıyorum.)

böyle yaptığım zaman veritabanı ekleme methoduna dolu halde geliyor ve eklerken hata veriyor. O yüzden resmini gönderdiğim methodda tekrardan null değerini atıyorum.

Resimde gönderdiğim şekilde eklemeyi yapıyor.