Entitiy Framework Hatası
-
Kod Yapım bu şekilde ;
[WebMethod]
public void ResetCredits()
{
var USER_TABLE = Entity.UserTable;
foreach(var items in USER_TABLE)
{
UserTable Table = Entity.UserTable.Where(x => x.UserName == items.UserName).FirstOrDefault();
Table.UserRestCredit = items.UserCredit;
// Response += Count + " : " + items.UserCredit + "," + Table.UserRestCredit+" ";
Entity.SaveChanges();
}
}
Aldığım Hata;
<string xmlns="http://tempuri.org/">Sağlayıcı bağlantısında bir işlem başlatılırken bir hata oluştu. Ayrıntılar için iç özel duruma bakın.</string>Tabloya veri ekleyip veri silebiliyorum güncelleme vs vs herşey oluyor ama bu kod yapısında bi hata var sebebi ne olabilir ?
-
hata geldiğinde inner exception denilen bir yer var hocam, orada detaylar yazıyor.. istiyorsan team ver bakayım yatmadan önce
-
unbalanced bunu yazdıhata geldiğinde inner exception denilen bir yer var hocam, orada detaylar yazıyor.. istiyorsan team ver bakayım yatmadan önce
Üstad çalışmaya devam ediyor :)
Kolay gelsin :)
-
sanırım uyudun ya da çıktın hocam :)
neyse ben de yatayım iş var yarın..
bu arada Entity.SaveChanges(); satırını döngü dışına alırsan muhtemelen çalışacaktır..
kolay gelsin
@zeybekustasi, benim için yazı yazacağına sen cevapla hocam :) senin de yeteri kadar tecrüben, bilgin olduğunu düşünüyorum.. iyi geceler
-
@unbalanced yazdığı gibi Entity.SaveChanges(); loopdan çıkarman lazım. Bir kere çağırman yeterli olacaktdır.
-
Homer bunu yazdı
@unbalanced yazdığı gibi Entity.SaveChanges(); loopdan çıkarman lazım. Bir kere çağırman yeterli olacaktdır.
Entity bilmeyen birisi olarak (yada cok az biliyor desek daha dogrudur) sormak istiyorum, her serferinde SaveChanges methodunu 2-3 kere cagirdiginda hata vermesinin sebebi nedir ? bunu sormamin sebebi ben her seferinde degisikligin db ye kayit olmasini ve farzi misal bir noktada yazilim kirilirsa yapabildigi kadarini yapmis olmasini istesem try catch finaly mi yapmam gerekecek dongu disinda ?
-
@rakkoc abimin dediği gibi ben tek bir değişiklik yapmıyorum ki bu yüzden üst üste savechanges yapmam gerekiyor.
üst üste değişiklik yapmak için mutlu change nasıl olacak?
-
Şimdi düşündüm de :D o alan için select işlemi yapılıyor yani aynı tabloda farklı sütunlar değişiyor tel seferde yapmak yetiyor :D. Şu durumu hiç sevmiyorum yahu 8-9 saat kod yazdıktan sonra bi anda saçma sapan hatalar yapıyorum bi ara. İf içerisinde !< yapmıştım :D ne gülmüştüm ya birde hocayı çağırıp hocam bu neden olmuyor c++ da farklı mı demiştim birdaha koda bak düşün dedi. Sonra dank etti utandım :D
@rakkoc abi aradığımız bu galiba
MhmdAlmz tarafından 26/Şub/16 10:11 tarihinde düzenlenmiştir -
yazdiginiz dongu baska bir threadin isleminin (transaction) bitmesine izin vermedigi icin SqlException firlatir.
bunu cozmek isterseniz listeleme isini dongunun disinda yapip o sekilde degisiklik yaparak cozebilirsiniz
-
unbalanced bunu yazdı
yazdiginiz dongu baska bir threadin isleminin (transaction) bitmesine izin vermedigi icin SqlException firlatir.
bunu cozmek isterseniz listeleme isini dongunun disinda yapip o sekilde degisiklik yaparak cozebilirsiniz
Oldu abi Mantık hatasıymış bizimki Kod hatası değil :/ teşekkürler yardımların için:)
-
hocam gördüğım hataları yazıyorum. dikkate alıp almaman sana kalmış.
- FirstOrDefault() kullanıyorsun ama Table değişkenin için null kontrolü yapmıyorsun. büyük ihtimal null bi kontrolün içerisine bilgi girmeye kalktın. bu yüzden o şekilde oldu. eğer null gelme olasığı yoksa First() kullanman daha uygun ve performanslı olur.
- Where kontrolünden sonra FirstOrDefault() kullanıyorsun. Sorgu bu şekilde daha mantıklı ve performanslı olacaktır : Entity.UserTable. FirstOrDefault(x => x.UserName == items.UserName);
- Entity bilgisini WebMethod içerisinde oluşturmadın. Bu şekilde aynı Entity üzerine bir işlem bitmeden başka bir işlem gelirse transaction hatası verir. Eğer web servisini tek bir kişi senkron olarak kullanmayacaksa her method un içerisinde yeni bir bağlantı oluştur. Bu şekilde iki kişi aynı anda sql'e query gönderemez.