Öğe Çerçeve toplu ekleme/güncelleştirme/silme işlemleri üzerinde çok yavaş olabilir. AutoDetectChanges ve/veya ValidateOnSaveEnabled'ı kapatmak için sık sık önerilen öneriler bile her zaman yardımcı olmaz.Z.EntityFramework.Extensions için ticari olmayan bir alternatif var mı?
NuGet'teki Z.EntityFramework.Extensions'a rastladım, ancak yalnızca belirli bir süre çalışacak bir ticari ürün gibi görünüyor.
https://www.nuget.org/packages/Z.EntityFramework.Extensions/
Şimdiye kadar, ben gerçekten sadece BulkInsert(), BulkUpdate() ve BulkDelete() gerekir.
Sorum şu: Z.EntityFramework.Extensions hemen hemen aynı yapar herhangi güvenilir ticari olmayan kütüphane,
var mı?
Herhangi bir ipucu için teşekkürler!
toplu güncelleştirme için ve kullanabileceğiniz https silin: // github com/loresoft/EntityFramework.Extended. Toplu ekleme için - her 100 veya daha fazla varlık için yeni bir bağlam oluşturun. Yani bağlam oluşturun, 100 ekleyin, değişiklikleri kaydedin. Sonra yeni bir tane oluşturun, sonraki 100'ü ekleyin, değişiklikleri kaydedin. Tüm bunları işlem kapsamına yazın. Bu, toplu iş eki değil, aynı bağlam örneğinde tüm varlıkları eklemek daha hızlı olacaktır. – Evk
Genel olarak ORM'ler, toplu işlemlere çok daha az hacimli kesici uçlar için * NOT * * uygundur. Bir kamyon dolusu çakıl taşını taşımak için cımbız kullanmak gibi. Bunu herhangi bir uzatma ile karşılayamazsın. Toplu ekler için en iyi seçenek, * gerçek *, minimal olarak kaydedilmiş, akışlı toplu ekleme işlemini gerçekleştirmek için SqlBulkCopy kullanmaktır. Toplu güncellemeleri gerçekleştirmek istiyorsanız, yalnızca UPDATE ifadesini kullanın.Harici kaynaklardan * UPSERT * istiyorsanız, her şeyi bir hazırlama tablosuna aktarın ve hedef tabloyu güncellemek için MERGE kullanın –
Diğer bir deyişle, güvenilir olmayan, güvenilir olmayan, ölçeklenemeyen bir işlemi güvenilir bir şekle dönüştürebilecek bir şey arıyorsanız bir. Neden güvenilir, ölçeklenebilir süreci başlangıçta kullanmayın? –