Geliştirmede, ef core framework'ü kullanıldığında, linq veya lambda ifadeleri kullanıldığında, sql ifadelerini doğrudan göremeyiz, bu da arıza giderme veya performansı optimize etmemiz için zahmetli olur.
Bu makale EF Core 5'i örnek olarak kullanıyorEF çıktısıyla oluşturulan SQL ifadelerini görüntülemek için.
İlk olarak, "ConsoleLoggerFactory" değişkeniyle yeni bir consolelogger fabrika değişkeni oluşturun ve oluşturulan sql ifadesi konsola çıktı olarak gönderilir, kod şu şekildedir:
DbContext kodunu aşağıdaki şekilde yapılandırarak ConfigureServices metoduna log çıktısı ekleyin:
Projeyi başlatın ve konsol çıktısını aşağıdaki şekilde görün:
info: Microsoft.EntityFrameworkCore.Database.Command[20101] Çalıştırılan DbCommand (1ms) [parametreler=[], CommandType='Metin', Komut Zamanı='30'] [a] SEÇİN. [Id], [a]. [Engelli], [a]. [Bağlantı], [a]. [İsim], [a]. [PinYin], [a]. [Pozisyon], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp] [Bölgeden] AS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101] Çalıştırılan DbCommand (19ms) [Parametreler=[p0='?' (Boyut = 4000)], CommandType='Metin', CommandTimeout='30'] SEÇ * FROM Alan WHERE pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101] Çalıştırılan DbCommand (1ms) [parametreler=[], CommandType='Metin', Komut Zamanı='30'] SELECT * FROM Alanı
Eğer where koşulu SQL ifadesi yalnızca parametrelerlenmiş değişkenleri görebiliyorsa, geçilen özel değerleri değil, aşağıdaki yapılandırma eklenir:
İstisna mesajlarına, loglara ve daha fazlasına uygulama verilerinin dahil edilmesini etkinleştirin.
Bu, varlık örneği özelliklerine atanan değerleri içerebilir,
veritabanına gönderilen komutların parametre değerleri ve benzeri diğer veriler.
Bu bayrak yalnızca güvenlik önlemleri varsa etkinleştirilmelidir
Bu verilerin hassasiyetine dayanarak.
Başvuru devam ediyorsa dikkat edin.
Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),
Bu seçenek, o hizmet sağlayıcının tüm kullanımları için aynı şekilde yapılandırılmalıdır.
Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system) adresini aramamayı düşünün. IServiceProvider)
Bu nedenle EF hizmet sağlayıcıyı yönetecek ve gerektiğinde yeni örnekler oluşturabilir
Tam kurulum şöyledir:
Çizimler aşağıdaki gibidir:
Elbette, yukarıdaki ayarlar DbContext'in OnConfiguring yöntemini geçersiz kılarak da yapılandırılabilir (önerilmez):
(Son)
|