ORM lerin kıymetini en iyi ADO.Net ile veritabanı kodu yazanlar bilir. Sektöre ilk başladığım zamanlar öyle çok uzun zamanlar değil yakın sayılabilecek 2011- 2012 li yıllar. Ama ORM leri keşfim sonrası ADO.Net e dönüp bakmadım. 2 TB veritabanı büyüklüğü olan ve sürekli büyüyen projede bile performans sorunu yaşamadım .NET EF de. Ki sanmam EF Core da yaşayacağım… Doğru schema düzgün değil ve normalizasyon yapılmadıysa ADO.Net bile çaresiz hatta Store Procedurler bile çaresiz kalır…
EF Core de kompleks Expression lar üreten bir yapım var. Aslında Expression view tarafta oluşuyor. Ve çok büyük predicate ler üretiyor. Hal böyle olunca SQL Query çıktısını görmeden hatanın nerden olduğunu anlamak zor. NET CORE projelerde SQL sorgusunu görmek istiyorsanız aşağıdaki yöntemi uygulayabilirsiniz. Sadece geliştirme ortamında görebileceğinizi unutmayınız… Loglamak isterseniz yada başka operasyonlarınız için https://www.entityframeworktutorial.net/efcore/logging-in-entityframework-core.aspx şu blog yazısına bakabilirsiniz.
Sadece visual studio nun output penceresinde görmek için
appsettings.json dosyasında şu konfigürasyonu göreceksiniz
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},LogLevel propertysinin alt kırılımına
"Microsoft.EntityFrameworkCore.Database.Command": "Information"
eklerseniz artık output pencersinde doğru projeyi seçmişseniz herhangi bir linq command çalıştığında SQL QUERY bu ekranda görünecektir.olması gereken ayarın tam görüntüsü
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.EntityFrameworkCore.Database.Command": "Information"
}
}
Bir yanıt yazın