Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 49435|Yanıt: 1

[Kaynak] EF "XXXX" ekleme tipine sahip varlıklar başarısız olur çünkü diğerleri...

[Bağlantıyı kopyala]
Yayınlandı 12.05.2021 09:43:53 | | |
EF, aynı türdeki başka bir varlığın zaten aynı birincil anahtar değerine sahip olması nedeniyle başarısız olan "XXXX" tipli bir varlık ekler. "Ek" yöntemi kullanılırken veya varlığın durumunu "Değişmemiş" veya "Değiştirilmiş" olarak ayarlarken

Çünkü aynı türdeki diğer varlıklar zaten aynı birincil anahtar değere sahiptir. Bu davranış, "Ek" yöntemi kullanıldığında veya çizimdeki herhangi bir varlık çelişkili anahtar değere sahipse bir varlığın durumunu "Değişmemiş" veya "Değiştirilmiş" olarak ayarlarken meydana gelebilir
Bunun nedeni, bazı varlıkların yeni olması ve henüz veritabanı tarafından oluşturulan anahtar değeri (yeni varlık) almamış olmaları olabilir; bu durumda grafik "Ekle" yöntemi veya "Eklendi" varlık durumu kullanılarak takip edilir ve yeni olmayan varlığın durumu buna göre "Değişmemiş" veya "Değiştirildi" olarak ayarlanır.
Aslında, bu hata şu ki, EF bir işlemi açtığında, EF bağlamında zaten aynı birincil anahtara sahip bir veri var ve ben şahsen çeşitli durumlarda bu sorunla karşılaşıyorum:

Durum 1:

Aynı verileri bir tabloda değiştirirken, yineleme yaparken, örneğin aynı ürünün envanter miktarını yinelemek, bu durumda bağlam önbelleğinin ilk kez temizlenmemesi gerekir

Kod şöyledir:


Buradaki döngü ilk kez hata rapor etmez, ikinci kez hata olur

Çözüm:


Durum 2:

Döngü işlemi önce bir veri parçası ekler, ardından veriyi değiştirir

Kod şöyledir:


Burada özellikle yeni EF'ler veya yeni varlıklar için hatalar da bildirilmektedir

Çözüm:








Önceki:Redis Benchmark performans testi
Önümüzdeki:ASP.NET Core'un Middleware ara yazılımının ayrıntılı açıklaması (9).
Yayınlandı 22.09.2021 20:55:57 |
Öğrenmeyi öğren...
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com