PDA

View Full Version : سوال: AsEnumerable مشکل آفرین



shahab_ksh
دوشنبه 27 دی 1395, 13:34 عصر
با سلام

وقتی میخام از AsEnumerable استفاده کنم خیلی دستم برای ساخت جملات و پرسجو ها بالا میره و دیگه این پیام لعنطی LINQ to Entities does not recognize the metho رو دریافت نمی کنم در حالی که با استفاده از AsQueryable همیشه این پیام خطا نشون داده میشه

اما مشکل بزرگ AsEnumerable اینه سرعت رو به شدت افت میده یه کوری رو ممکنه تا 5 دقیقه طول بده وقتی با Profiler نگاه کردم دیدم به ازای هر رکورد بانک اطلاعاتی یک بار به بانک متصل میشه و کوری مورد نظرش رو اجرا میکنه و دوباره دوباره ....

در حالی که AsQueryable فقط یک جمله رو تحویل دیتابیس میده و جواب رو میگیره

چطور میشه این مشکل رو حل کرد ؟

Moien Tajik
دوشنبه 27 دی 1395, 17:58 عصر
شما وقتی IQueryable مینویسید ، درخواستی به سمت دیتابیس نمیره چون فقط به شکل یک عبارت ( expression ) هستش و هنوز درخواستی به سمت دیتابیس تا وقتی که از ToList , FirstOrDefault , First , Last , Find و ... استفاده نکنید نمیره.

این مطلب رو مطالعه کنید : http://www.dotnettips.info/post/473/