EntityFramework Query Tagging
Last updated
Last updated
EntityFramework Core 2.2 ile birlikte hayatımıza giren query tagging özelliğini size anlatmaya çalışacağım.
Özellikle EF ile yazılan uygulamalarda, karmaşık LINQ sorguları ile yazdığımız sql çıktılarının takibi, karmaşıklığı ve performans sorunlarını hepimiz biliyoruz. Bu gibi durumlarda çıktıları kontrol etmemiz, özellikle EF’nin oluşturduğu sorguların execution planlarını ve performans metriklerini takip etmemiz zor olabiliyor.
Alternatif Çözüm olarak APM ürünlerini kullanabilirsiniz.
Query Tagging, hem database yönetimi hem de log’lama sistemleri için sorgularımızı etiketleyerek, hızlıca erişebileceğimiz bir özelliktir.
Sorgularınızı yazarken; ne amaçla yapıldığını / yazıldığını belirten bir işaretleme (tagging) yapıyoruz.
Örneğin
GetFirst50Products — Product tablosunda ilk 50 kaydı getiren sorgu
GetAllUserRoles — Kullanıcı rollerinin tümünün çekildiği sorgu
Bunu yapabilmemiz için aşağıdaki gibi TagWith extension fonksiyonunu kullanabilirsiniz.
Sorgunun çıktısı ise bu şekilde olacaktır.
Sql Server üzerinde son çalıştırdığınız sql dizisine erişmek için aşağıdaki sorguyu kullanabilirsiniz.
İlgili yazının uygulanışına aşağıdaki linkten erişebilirsiniz.