IQueryable
ฉันได้รับการเห็นมากของโครงการที่มีพื้นที่เก็บข้อมูลที่ส่งกลับกรณีของ สิ่งนี้อนุญาตให้ตัวกรองเพิ่มเติมและการเรียงลำดับสามารถทำได้บนIQueryable
โดยรหัสอื่นซึ่งแปลเป็น SQL ที่แตกต่างกันที่ถูกสร้างขึ้น ฉันอยากรู้ว่าแบบนี้มาจากไหนและเป็นความคิดที่ดีหรือไม่
ความกังวลที่ใหญ่ที่สุดของฉันคือการที่IQueryable
สัญญาว่าจะตีฐานข้อมูลในภายหลังเมื่อมีการแจกแจง นี่หมายความว่าจะเกิดข้อผิดพลาดนอกที่เก็บ นี่อาจหมายถึงข้อยกเว้น Entity Framework เกิดขึ้นในเลเยอร์อื่นของแอปพลิเคชัน
ฉันยังพบปัญหากับชุดผลลัพธ์ที่ใช้งานหลายรายการ (MARS) ในอดีต (โดยเฉพาะเมื่อใช้ธุรกรรม) และวิธีการนี้ดูเหมือนว่าจะทำให้เกิดเหตุการณ์นี้บ่อยขึ้น
ฉันได้เรียกAsEnumerable
หรือToArray
ตอนท้ายของแต่ละนิพจน์ LINQ ของฉันเสมอเพื่อให้แน่ใจว่ามีการเข้าใช้ฐานข้อมูลก่อนที่จะออกจากที่เก็บรหัส
ฉันสงสัยว่าการส่งคืนIQueryable
อาจมีประโยชน์ในแบบ Building Block สำหรับชั้นข้อมูลหรือไม่ IQueryable
ฉันได้เห็นรหัสฟุ่มเฟือยสวยบางคนที่มีพื้นที่เก็บข้อมูลการเรียกเก็บข้อมูลอื่นที่จะสร้างที่ยิ่งใหญ่
where
ข้อที่จะรอการตัดบัญชีIQueryable
ที่คุณจะต้องส่งที่ข้อมูลผ่านสายที่ไม่ได้ชุดผลลัพธ์ทั้งหมด