EF (dll sürüm 4.4) kullanıyorumken EF'deki büyük oluşturulmuş SQL sorgularını nasıl önleyebilirim. Veri tabanı, ders bilgileri içeren birkaç tablo içerir. Gerçekte db'ye gönderilen bir görüntüye baktığımda, neredeyse 1300 satırlık bir SQL sorgusu görüyorum (burada büyüklüğü nedeniyle buraya yapıştırmayacağım).Bir veritabanına karşı sorgulamak için Include()
entities.Plans
.Include("program")
.Include("program.offers")
.Include("program.fees")
.Include("program.intakes")
.Include("program.requirements")
.Include("program.codes")
.Include("focuses")
.Include("codes")
.Include("exceptions")
.Include("requirements")
where plans.Code == planCode
select plans).SingleOrDefault();
ben ilgili tabloların her birinden bilgi toplarken sunucuya geri dönmek zorunda kalmamak istiyorum ama bu kadar büyük sorgusu ile ben merak ediyorum: Ben bağlama koşuyorum sorgu benziyor Bunu yapmanın daha iyi bir yolu var mı?
Teşekkürler.
Eh, istekli yükleme yapıyorsunuz ve sorgunuz tüm verileri bir kerede almayı deniyor, dolayısıyla neden bu kadar büyük. Orada bir problem olarak tam olarak ne görüyorsun?Diğer seçenek ise, sanal özelliklere sahip tembel yükleme yapmaktır; bu, erişmeye çalıştığınızda EF tarafından arka planda getirilecek, ancak veritabanına gidiş dönüş istemediğinizi belirttiniz. –
Burada benzer bir cevap var http://stackoverflow.com/questions/5521749/how-many-include-i-can-use-on-objectset-in-entityframework-to-retain-performance –
Sanırım buna doğru bakıp bakmadığımı merak ediyorum. Bir çok küçük sorguya karşı birkaç küçük sorgunun veya bunu yapmanın daha iyi bir yolunun olup olmadığı. – b3n