جلسه هفتم دوره Modern Data Layer به تدریس مهندس علیرضا ارومند با موفقیت برگزار گردید.
از جمله مباحثی که در این جلسه مطرح شد عبارتند از:
بخش اول مباحث پیشرفته کار با DbContext بود که در ادامه به بررسی نکات این قسمت میپردازیم.
1- ساختار کلی DbContext
ابتدا به ببرسی ساختار کلی DbContext پرداختیم و دیدیم که به طور کلی از چه توابع و خواصی تشکیل شده و هرکدام از این خواص چگونه به ما در کار کمک میکنند.
یکی از خواص مهم DbContext بحث Change Tracker و نحوه مدیریت تغییرات میباشد. در این قسمت با هم بررسی کردیم که انواع توابعی که میتوانند تغییراتی برای ما ایجاد کنند چه توابعی هستند و هر کدام چگونه این تغییرات را اعمال میکنند و دیدیم چگونه میتوانیم از Change Tracker استفاده کنیم و تغییرات را روی اطلاعات اعمال کنیم.
یکی از مواردی که در پردازش اطلاعات با تعداد رکوردهای زیاد روی عملکرد سیستم تاثیر فراوانی دارد تشخیص تغییرات اطلاعات موجود در DbContext است و تاثیر منفی که این تشخیص روی سیستم میگذارد و سناریویی را برای حذف این سربار از سیستم با هم بررسی کردیم.
2- خاصیت Database و نحوه استفاده از آن
بعد از اتمام کار با Change Tracker و بررسی سناریوهایی که میتوانیم به کمک آن انجام دهیم نوبت به خاصیت Database و نحوه استفاده از آن برای اجرای دستورات SQLبه صورت مستقیم رسید. دیدم که به چهار روش مختلف میتوان دستورات SQL را به کمک EF اجرا کنیم.
در پایان قسمت اول نوبت به بررسی Transaction و نحوه مدیریت آن در SQLو استفاده از EF رسید و با هم دیدیم که چگونه به کمکStrategy ها میتوانیم خطاهای زمان اجرا را کاهش دهیم.
3- Migration
در قسمت دوم کلاس نوبت به مبحث Migration رسید. یکی از روشهای جذاب توسعه با EF استفاده از مدل برنامه برای تولید دیتابیس است که به آن اصطلاحا Code First میگویند. اما برای تولید این کدها و دیتابیس و نحوه اعمال آن روی دیتابیس راهها و الگوهای متفاوتی وجود دارد. بخصوص زمانی که برنامه ما در حال اجرا است و ما با یک دیتابیس Liveدر حال کار کردن هستیم. پس ابتدا چالشهای این کار را با هم شناسایی کردیم و بعد نوبت به هرکدام از این چالشها پاسخ دادیم و راه حل اصولی ارائه شده توسط EF را بررسی کردیم.
اما همیشه ما از کد به دیتابیس نمیرسیم بلکه شرایط مختلفی وجود دارد که نیاز به کاری برعکس این داریم یعنی از دیتابیس به کد برسیم که در نسخههای قدیمی به این روش توسعه DB First میگفتند. در نسخه جدید این کار منسوخ شده و در صورت نیاز میتوانیم از Reverse Engineering برای این کار استفاده کنیم که بحثی بود که در انتهای جلسه هفتم خدمت شرکت کنندگان عزیز ارائه گردید.
جهت کسب اطلاعات بیشتر میتوانید به دوره بسیار کاربردی Modern Data Layer مراجعه کنید.