PDA

View Full Version : سوال: تفاوت سرعت لود اطلاعات در IEnumerable و ToList



hastiam
دوشنبه 24 آذر 1393, 12:00 عصر
سلام دوستان
دو دستور متفاوت زیر برای خوندن اطلاعات از دیتابیس نوشته شده از لحاظ سرعت لود اطلاعات، کدوم دستور بهتره ؟
دستور اول :


IEnumerable<Goods> goodscontext = repository.Goods.Where(i => i.Code > 1003);


دستور دوم :


var goodscontext = repository.Goods.Where(i => i.Code > 1003).ToList();

تا جایی که من سرچ کردم IEnumerable ، همه رکوردها رو یکی یکی میخونه و شرط رو روی همه رکوردها چک میکنه. آیا ToList هم به همین شکله؟

parvizwpf
دوشنبه 24 آذر 1393, 12:10 عصر
لود بالایی در واقع اودی نیست که شما فکر کنید دیتا رو میاره.
برای اطلاعات بیشتر :
http://www.dotnettips.info/post/473/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-iqueryable-%D9%88-ienumerable-%D8%AF%D8%B1-%D8%AD%DB%8C%D9%86-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-orms

hastiam
دوشنبه 24 آذر 1393, 12:40 عصر
لود بالایی در واقع اودی نیست که شما فکر کنید دیتا رو میاره.
برای اطلاعات بیشتر :
http://www.dotnettips.info/post/473/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A8%DB%8C%D9%86-iqueryable-%D9%88-ienumerable-%D8%AF%D8%B1-%D8%AD%DB%8C%D9%86-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-orms

من تا حدودی متوجه شدم. حالا یه سوال اگه من از دستور زیر تو کل برنامم استفاده کنم مشکلی ایجاد نمیشه ؟


IEnumerable<Goods> goodscontext = null;
var goodsinfo = goodscontext.Goods.Where(i => i.Code > 1003).ToList();

parvizwpf
دوشنبه 24 آذر 1393, 15:35 عصر
خب همینو میتونید در حافظه بصورت IQueryable داشته باشید نه بصورت لیست .بعد هر موقع خواستید روی اون کوئری بنویسید