Entity Framework Hakkında Bir Soru
-
başlık seçemedim :)
Örneğin bizim bir tablomuz var
kullanıcı
-------
id
ad
soyad
dogum
cinsiyet
vs.. çok alan varsorgular
1 - select kullanıcı.ad from kullanıcı where kullanıcı.id == 1
2 - select * from kullanıcı where kullanıcı.id == 1
tsqlde sadece ad alanını almak için 1. gibi yapacaktım.
2. gibi yazsaydım 1.ye göre hız farkı olacak çünkü sadece ad alanını almakla diğer alanlarıda almak arasında data farkı var. benim ihtiyacım sadece ad alanı.buraya kadar ok
ben bunu entityde alırken;
entity.kullanıcı.Where(f=>f.id == 1).select(d=>d.ad).firstOrDefault()
şeklinde yazıyorum, bunun sqlservera göndermesi gereken tsql 1. maddedeki gibi olması gerekiyor fakat sql serverdan izleyince gelen tsqlde tüm alanları aldığını görüyorum.
sadece ad alanı lazımken tablodaki tüm alanları çekmesi sqlserveri yoruyor.
entity framework böyle mi çalışıyor yoksa var mıdır çözümü? -
Entityde de oyle hocam where islemini sqlde yapmak en mantiklisi *la cektigin zaman idler de geliyor,id burda senin olusturdugun id degil ama sqlin kendi icinde olusturdugu sen tum alanlari cekersen entityde bunu yapman seni baya bir zorlar bunun yerine sql de yaparsan querynin donme saniyesi kadar yavasligin olur sql profilerla bir test yapasin sql querylerinin donme hizlarini