شرکت مایکروسافت از سال ۲۰۰۸ چارچوب محبوب و کاربردی Entity Framework را تولید کرد که این چارچوب یک ORM است و از سرویس های ADO.NET استفاده می کند. هنگامی که بخواهیم میان زبان برنامه نویسی شی گرای #C و پایگاه داده SQL Server که سیستمی رابطه ای و غیرشی گرا است، ارتباط برقرار کنیم از مفهوم Object Relational Mapping استفاده می کنیم. هدف استفاده از چارچوب Entity Framework این است که بتوان مشکلات و نقایص موجود در روش های قبل مانند: Ad-Hoc, Parametric و Stored Procedure که از کلاس های کتابخانه ADO.NET استفاده می کردند را به حداقل برسانیم.
تاریخچه Entity Framework
مایکروسافت قبل از معرفی Entity Framework، تکنولوژی های RDO، ADO و در آخر ADO.NET رو ارائه کرده بود و برای اکثر این تکنولوژی ها زمان زیادی نیز گذاشته بود.هر کدام از این تکنولوژی ها در زمان خودشون، تکنولوژی نوین و حرکت عظیمی بودند اما با گسترش مفاهیم شی گرایی و نیاز مبرم برنامه نویسان به ایجاد اشیا از داده ها و جداول بانکهای اطلاعاتی، مایکروسافت اقدام به توسعه تکنولوژی ADO.NET کرد و ابتدا امکانات Linq و سپس Entity Framework رو برای تعامل بهتر با شی گرایی مطرح کرد.
Entity Framework چیست؟
Entity Framework مجموعه ای از تکنولوژی ها در ADO.NET (بخشی از چارچوب زبان ASP.NET) است که هدف اون در اختیار گذاشتن برخی از قابلیت های برنامه نویسی شی گرایی بخصوص در استفاده از بانک های اطلاعاتی برای برنامه نویسان می باشد. این فریم ورک یک ORM است که توسط شرکت Microsoft توسعه داده میشه. این فریم ورک از اطلاعات موجود در مدل ها و فایل های نگاشت، برای ترجمه کوئری آبجکتی در برابر موجودیت های جایگزین شده در مدل مفهومی به کوئری های سطح پایگاه داده، استفاده می کنند.
استفاده از Entity Client Data Provider
Entity Framework از Entity Client data provider برای مدیریت اتصال به پایگاه داده، ترجمه کوئری های موجودیت به کوئری های مخصوص منبع داده و بازگردوندن یک datareader که Enrity Framework برای ساختن موجودیت آبجکت ها نیاز داره، استفاده میکنه. زمانی که نیازی به تبدیل شدن به آبجکت ها هم نیاز نباشه، این Provider میتونه به عنوان یک ADO.NET data provider استفاده بشه و خروجی رو به عنوان یک datareader فقط خواندنی (Read-Only) بده.
مزایای استفاده از Entity Framework
دسترسی به داده ها در این فریم ورک بسیار ساده است و به شما این اجازه رو میده تا مدل مفهومی مورد نیاز برای کسب و کار رو ایجاد کنین. EF به شما اجازه میده تا روابط چند به چند رو بدون JOIN های متعدد مدیریت کنید. در این فریم ورک پشتیبانی غنی و خوب از ارث بری ها برای جدول به ازای سلسله مراتب، زیر کلاس و تایپ های به هم چسبیده (Concrete Tybe) وجود داره.
معایب استفاده از Entity Framework
با وجود اضافه شدن امکانات زیاد به نسخه 4 این فریم ورک، اما این ابزار هنوز نسبت به ORM های محبوب، دارای کم و کاستی هایی است. همچنین به دلیل استفاده از Designer، بر روی کدی که تولیده میشه، نمیتوان روی کد ها تسلط زیادی داشت که البته با استفاده از کلاس های Partial، این مسئله تا حدی بهبود داده شده است ولی همچنان تسلط پایینی بر روی کد های تولید شده وجود داره.
برای یادگیری Entity Framework چه چیز را باید از قبل بدانیم !
قبل از اینکه مطالعه ی آموزش Entity Framework (انتیتی فریم ورک) را شروع کنید، شما باید دانش پایه ای(حداقلی) از موارد زیر را داشته باشید
واژگان کلیدی