PDA

View Full Version : حرفه ای: Entity Framework چگونه کار می کند؟



all_time_programmer
چهارشنبه 29 دی 1400, 13:22 عصر
API مربوط به Entity Framework حاوی قابلیت هایی برای Map کردن Domain Entity ها به Database Schema است. ترجمه کردن و اجرای دستورات LINQ به دستورات SQL و ردگیری تغییراتی که بر روی Entity ها در زمان طول عمر آنها رخ می‌ دهد (که با نام Change Tracking شناخته می‌ شود) و نهایتاً ذخیره کردن این تغییرات بر روی دیتابیس از دیگر قابلیت های Entity Framework است. در تصویر زیر API مربوط به Entity Framework را مشاهده می کنید.
https://provid.ir/wp-content/uploads/2018/09/ef-api.png (https://provid.ir/wp-content/uploads/2018/09/ef-api.png)

تعریف Entity Data Model


اولین وظیفه ی API مربوط به Entity Framework ساختن Entity Data Model است. Entity Data Model یا EDM یک نمایش درون حافظه ای از تمام متا دیتای مربوطه که شامل Conceptual Model و Storage Model و Mapping های بین آنها است می باشد. لطفاً تصویر زیر را ببینید.

https://provid.ir/wp-content/uploads/2018/09/ef-edm.png (https://provid.ir/wp-content/uploads/2018/09/ef-edm.png)
تعریف Conceptual Model


در Entity Framework این مدل بر اساس Domain Class ها و کلاس Context و Convention های پیش فرضی که در Domain Class های خود لحاظ کرده اید و Configuration های احتمالی که لحاظ کرده اید ساخته می شود.
تعریف Storage Model


در Entity Framework این مدل بر اساس Schema بانک اطلاعاتی که قرار است با آن کار کنید ساخته می شود. در روش Code First این مدل بر اساس Conceptual Model ساخته خواهد شد. در روش Database First این مدل بر اساس بانک اطلاعاتی مورد استفاده ساخته می شود.
تعریف Mapping ها


در رابطه با Mapping ها در Entity Framework باید بگوییم که Entity Framework شامل اطلاعاتی برای Map کردن Conceptual Model به Storage Model می باشد. به عبارت دیگر برای Map کردن Entity Class ها به Schema بانک اطلاعاتی Entity Framework بر اساس Entity Data Model دستورات CRUD را برای شما اجرا می کند. این قضیه با استفاده کردن از EDM در ساخت دستورات SQL از طریق دستورات LINQ و تبدیل آنها به دستوراتی INSERT و UPDATE و یا DELETE مربوطه و اجرا کردن آن ها بر روی بانک اطلاعاتی انجام می شود.
Query گرفتن


در Entity Framework دستورات LINQ به دستورات SQL تبدیل شده و آنها برای اجرا به سمت بانک اطلاعاتی ارسال می شوند. این قضیه توسط EDM انجام می شود. علاوه بر این نتایج اجرای دستورات SQL بر روی بانک اطلاعاتی تبدیل به Entity Object ها می ‌شود و در درون فضای برنامه نویسی شی گرای شما مورد استفاده قرار می گیرند.

https://provid.ir/wp-content/uploads/2018/09/ef-querying.png (https://provid.ir/wp-content/uploads/2018/09/ef-querying.png)
ذخیره کردن تغییرات


در Entity Framework دستورات INSERT و UPDARE و DELETE ای که بر اساس State مربوط به Entity ها لحاظ می شود در زمان فراخوانی متد SaveChanges بر روی بانک اطلاعاتی اجرا می‌کنند. Entity Framework مکانیزم Change Tracking مربوط به هر کدام از Entity ها را در نظر گرفته و در زمان صدا زدن متد SaveChanges تغییرات رخ داده بر روی آنها را به سمت بانک اطلاعاتی ارسال می‌کند.


https://provid.ir/wp-content/uploads/2018/09/ef-saving.png
منبع:وبسایت پرووید

(https://provid.ir/course/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%85%d8%aa%d9%86%db%8c-%d8%b4%d8%b1%d9%88%d8%b9-%d8%a8%d9%87-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-entity-framework-%d8%af%d8%b1-%d8%af%d8%a7%d8%aa-%d9%86%d8%aa/)