Örneklerini iade eden havuzlara sahip birçok proje görüyorum IQueryable. Bu, ek filtrelere izin verir ve sıralama, IQueryableüretilen farklı SQL'e çeviren diğer kodlarla gerçekleştirilebilir . Bu modelin nereden geldiğini ve iyi bir fikir olup olmadığını merak ediyorum.
En büyük endişem, bir IQueryablenumaralandırıldığı zaman, veritabanına bir süre sonra ulaşacağıma dair bir söz olduğudur. Bu, bir hatanın havuzun dışına atılacağı anlamına gelir. Bu, Entity Framework istisnasının uygulamanın farklı bir katmanına atıldığı anlamına gelebilir.
Ayrıca geçmişte Çoklu Aktif Sonuç Kümeleri (MARS) ile ilgili sorunlara da girdim (özellikle işlemleri kullanırken) ve bu yaklaşım bunun daha sık gerçekleşmesine neden olacak gibi görünüyor.
Depo kodunu terk etmeden önce veritabanının isabetli olduğundan emin olmak için her zaman LINQ ifadelerimin her birini AsEnumerableveya ToArraysonunu çağırdım .
Döndürmenin IQueryablebir veri katmanı için bir yapı taşı olarak yararlı olup olmadığını merak ediyorum . Bir depo ile daha da büyük bir bina oluşturmak için başka bir depo çağıran oldukça abartılı bir kod gördüm IQueryable.
whereErtelenen bir madde eklerlerse , sonuç kümesinin tamamını değil, IQueryableyalnızca bu verileri kablo üzerinden göndermeniz gerekir .