آموزش رفع ارور مهلک the ObjectContext instance has been disposed and can no longer be used for operations that require a connection در entity framework


دوستانی که با تکنولوژی حرکن می کنن و الان دارن با Entity Framework کد میزنن ، خیلی از مواقع ممکنه که با همچین اروری برخورد کنن.

در توضیح باید خدمتتون عرض کنم که بنده 2 روزه دارم با این ارور سرو کله میزنم که طبق چیزی که بنده متوجه شدم ، این ارور موقعی رخ میده که شما یک کد linq روی entity framework تون نوشتین که در خروجیش لیستی از اشیاء رو دارین از دیتابیس دریافت می کنین.

حال اگر بخواهید روی خروجی یک تابعی مثل skip رو اجرا کنین ، از اونجایی که در entity framework تا وقتی که از متغیر خروجی دستورتون استفاده نکنین ، چیزی از دیتابیس دریافت نمیشه ، entity framework بیچاره نمی تونه روی یک متغیر null بیاد و تابعی مثل skip رو اجرا کنه و بنابراین ارور مهلک بالا رو بهتون نمایش میده.

به بیان ساده تر ، در  تا وقتی که خروجی دستور Linq تونو داخل یک کنترل داده ای نریزید و یا با forearch روی خروجی حرکت نکنین ، هیچ اتصالی به دیتابیس انجام نمی پذیره و مسلما از اونجایی که خروجی دستور linkq تون رو که داخل یک متغیر var ریختین ، متغیرتون کاملا خالیه (null).

حالا اینکه شما انتظار دارید که بیاد و روی هیچی (یک متغیر null) یک تابعی رو اجرا کنه ، یک خواست نادرستیه و entity framework درخواست نابجای شما رو با ارور مهلک the ObjectContext instance has been disposed and can no longer be used for operations that require a connection  پاسخ میده.

تا شما باشین درخواست نابجا نکنین :)
سایت نت نیک

رفع ارور مهلک the ObjectContext instance has been disposed and can no longer be used for operations that require a connection در entity framework:

رفع خطا بسیار ساده است ، در entity framework توابعی وجود دارد که موجب می شوند که بلافاصله پس از اجرای این توابع ، اتصال به دیتابیس صورت گیرد و اطلاعات مورد نظر از دیتابیس دریافت گردد.
دستور ()ToList یکی از این توابع است.

کافی است شما قبل از استفاد هاز توابعی مانند skip از این تابع استفاده نمایید تا بلافاصله اطلاعات از دیتابیس دریافت بشه و entity framework بتونه تابع مورد نظر شما رو روی خروجی دیتابیس اجرا کنه.

البته این چیزیه که من بهش رسیدم و ممکنه 100% کامل و درست نباشه ؛
ولی از اونجایی که در این سایت من دارم تجربیات و مطالبی که خودم در حین برنامه نویسی می فهمم رو آموزش میدم ، این امر کاملا طبیعی است که برخی مطالب کامل نباشند.
خوب مشکل من که با این روش حل شد :)
خوب به همین سادگی ، تا آموزشی دگر بدرود

نوشته شده در تاریخ پنجشنبه 23 خرداد 1392    | توسط: ح.م    | طبقه بندی: آموزش ASP.NET، آموزش Entity Framework،     | نظرات()