Entity Framework یک ابزار متن باز O/RM (Object-Relational Mapper) برای دسترسی به پایگاه داده در رویکرد شی گرا در دات نت است.
O/RM
این یک چارچوب ماندگاری است که برای نگاشت جدول پایگاه داده به کلاس ها و اشیاء استفاده می شود. به طور کلی پایگاه داده را در رویکرد شی گرا جستجو می کند و ایمنی نوع را در حین کامپایل فراهم می کند.
معماری Entity Framework
گردش کار در Entity Framework 3 نوع است
- ابتدا پایگاه داده
در پایگاه داده ابتدا جداول خود را با استفاده از یک طراح بصری یا با استفاده از پرس و جوی SQL طراحی می کنیم. سپس Entity Framework یک کلاس دامنه تولید می کند. این رویکرد سنتی است که بسیاری از توسعه دهندگان از زمان انتشار اولیه EF 1 و Visual Studio 2008 دنبال می کنند. - ابتدا مدل
در مدل ابتدا از طراح بصری در ویژوال استودیو برای مدل سازی کلاس خود و همکارانشان استفاده می کنیم. درست مانند نمودار UML است و بر این اساس EF یک کلاس دامنه و پایگاه داده تولید می کند. با EF 4.0 و Visual Studio 2010 منتشر شد. - ابتدا کد
در کد ابتدا کلاس دامنه خود را ایجاد می کنیم سپس EF یک پایگاه داده برای ما ایجاد می کند. The Code First با EF 4.1.1 و Visual Studio 2010 منتشر شد.
نحوه انتخاب گردش کار توسعه
اشکال اولیه پایگاه داده و اولین گردش کار مدل
در صورت درج، به روز رسانی و حذف ابتدا در پایگاه داده و مدل، برای اعتبارسنجی داده ها نیاز به تجزیه و تحلیل XML و جداسازی دارد و ابتدا در کد، همه چیز در قالب پیش کامپایل است.
کد FIRST WORKflow
در گردش کار کد اول، ما به طور کلی یک مدل را با استفاده از کلاس C# توصیف می کنیم، سپس یک پایگاه داده از این کلاس ها ایجاد می کنیم. رویکرد کد اول، گردش کار انعطاف پذیرتر از گردش کار پایگاه داده است. در آخرین فریم ورک Entity، ما فقط گردش کار کد اول را داریم.
مزیت کد اول
- این به طور کامل در رویکرد شی گرا کار می کند و ما نباید نگران ساختار پایگاه داده باشیم.
- این کنترل کامل روی کد را فراهم می کند، اما در مورد ابتدا پایگاه داده، کل کد بر اساس تغییرات پایگاه داده شما به طور خودکار تولید می شود.
- ما می توانیم آن را با یک پایگاه داده موجود نیز استفاده کنیم.
- نسخه کامل پایگاه داده. (یعنی استفاده از مهاجرت بازگشتی با هدف قرار دادن یک مهاجرت خاص در گذشته)
توجه داشته باشید
برخی از توسعه دهندگان این تصور اشتباه دارند که ابتدا کد را می توان برای پروژه سبز فیلد استفاده کرد نه برای پایگاه داده های موجود و رویکرد اول پایگاه داده به شما کنترل بیشتری بر پایگاه داده می دهد.
کد اول مدل اول بر 2 نوع هستند
- حاشیه نویسی داده ها
با ویژگی در کلاس مدل مشخص می شود و معمولاً در پروژه های ساده استفاده می شود که در آن یک ویژگی مورد نیاز ایجاد می کنیم، نام جدول را با استفاده از ویژگی جدول تغییر می دهیم، کلید اصلی را با استفاده از ویژگی کلید اضافه می کنیم، ایندکس را با استفاده از ویژگی شاخص اضافه می کنیم و طول را در یک تنظیم می کنیم. رشته با استفاده از طول رشته و غیره - Fluent API
یک قرارداد اصلی در کلاس زمینه پایگاه داده است و معمولاً در برنامه های سازمانی برای پیکربندی روابط بین کلاس ها استفاده می شود و ما می توانیم هر کاری را انجام دهیم که حاشیه نویسی داده توسط fluent api انجام می دهد.