ایجاد دیتابیس با روش Entity Framework + آموزش ویدیویی

Entity Framework

در این مقاله چگونگی تبادل ایجاد دیتابیس با Entity Framework را خواهیم دید. هدف ، استفاده از دیتابیس موجود و ساخت یک مدل entity است که با EF designer در تماس باشد. پس برای شروع من با ساخت یک کتابخانه ی کلاس به عنوان یک data project شروع میکنیم تا مطمئن باشیم که میتوانیم به راحتی از آن در برنامه های دیگر نیز استفاده کنیم. برای درک بهتر شما علاوه بر توضیحات کامل همراه با تصاویر ، دموی این مقاله نیز قرار داده شده است. امیدوارم از آن استفاده کنید. با من همراه باشید …

Entity Framework

 

Entity Framework

پس کتابخانه ی نمونه با فایل کلاس Sample در آن تولید میشود که در تصویر زیر نشان داده شده است. ولی من به این فایل کلاس احتیاج ندارم پس آن را حذف میکنیم.

Entity Framework

و سپس Model ام را اضافه میکنم که پیدا کردنش بسیار آسان است. به شاخه ی data بروید و به دنبال ADO.Net Entity Data Model بگردید و آن را انتخاب کنید و نامی مناسب برای آن انتخاب کنید و آن را اضافه کنید.

Entity Framework

سپس به انتخاب موارد جانبی میپردازیم. به عنوان مثال آیا مایل به ساخت بر روی یک دیتابیس موجود هستید یا میخواهید یکی جدید تولید کنید. من گزینه ی اول را انتخاب میکنم . همانند شکل زیر :
Entity Framework

از آنجایی که من قبلا Server Explorer را به عنوان دیتابیس مقصد انتخاب کرده ام ، پیغام زیر را همراه با Connection String دریافت خواهم کرد. این Connection String در فایل App.Config نیز ذخیره میشود.

Entity Framework

حال در مورد بعدی جداول Tables ، Views ، Stored Procedures یا functions که لازم دارید را انتخاب کنید. من آنهایی را که هب نظرم برای مثالمان مورد نیاز است را انتخاب میکنم.

Entity Framework

حال نکته ای مهم در اینجا که باید در نظر بگیریم این است که من ۳ Checkbox دارم و به طور پیش فرض همه ی آنها تیک خورده اند. اولین Checkbox برای مشخص کردن این است که آیا اسامی را با S جمع در انتها ینویسد یا همانگونه به صورت مفرد وارد کند. به بیان دیگر با فعال کردن این گزینه اگر نامی به صورت مفرد وارد کنید ، این Wizard آن را به صورت جمع تبدیل میکند. گزینه ی بعدی این است که شامل ستون foreign Keys در model باشد. این گزینه نیز به صورت پیش فرض انتخاب شده است. اگر شما ارتباط یا Relationship ای در دیتابیس تان مشخص کرده باشید ، آنگاه شما یک کلید اصلی و کلید خارجی خواهید داشت ، پس EF این را تشخیص میدهد و Relation های پس از آن را ایجاد میکند. حال گزینه ی آخر در رابطه با این است که wizard چگونه Stored Procedure و function ها را کنترل میکند. هرگاه این گزینه انتخاب شده باشد (به صورت پیش فرض انتخاب شده) wizard کار را آسان میکند. همچنین با ارایه ی یک انتخاب میتوانید آن را در کد انتخاب کنید. حال بر روی Finish کلیک کنید. Entity Diagram به همراه تعدادی اخطار ساخته میشود.

Entity Framework

ممکن است تعدادی پیغام و اخطار نیز در آن ببینید. این اوکی است. نیازی نیست که نگران آنها باشیم. به طور معمول اتفاقی که می افتد این است که یک قانون عمومی در چارچوب Entity وجود دارد که که هر جدولی باید یک کلید اصلی داشته باشد که در این مورد ما تعدادی view نیز داریم که دارای کلید اصلی نیستند. پس wizard یک Composite key بر روی همه ی ترکیبات غیر Null پذیر در view ایجاد میکند. پس جدا از آن اخطار ها تعداد زیادی عملیات توسط wizard در پشت صحنه انجام میشود. که در تصویر زیر آورده شده است. خط هایی که بین اشیا میبینید همان Relationship هایی است که بر اساس کلید های خارجی ساخته شده اند.

Entity Framework

حال در این بین designer همه ی entity ها را در یک مکان به من میدهد ، بعضی اوقات تشخیص دادن جداول ، View ها و Procedure ها مشکل است. اما راهی برای چک کردن آنها نیز هست که چک کردنmodel Browser با راست کلیک کردن بر روی designer همانند زیر است :

Entity Framework

با انجام این کار ، دسترسی به model browser در قسمتی از چارچوب ویژوال استودیو همانند زیر خواهیم داشت :

Entity Framework

حال تعدادی key points در اینجا وجود دارد که باید درک شوند ، پس جایی که توابع و Stored Procedure ها قرار دارند ، در قسمت واردات توابع است. پس اینها به توابع تبدیل میشوند ، به بیان دیگر توابعی که اجرا میشوند نتایج را بارمیگردانند و کاری که wizard برای هر تابع انجام میدهد این است که آن را به عنوان یک نوع پیچیده ایجاد شده بازمیگرداند. یک چیز دیگر که با نام توابع scalar valued شناخته میشوند ، وجود دارد. توابع scalar valued چیزی است که در Query ها استفاده میشود.

اکنون مورد بعدی که باید درک کنیم این است که ارائه ی تصویری model که ما در حال مشاهده ی آن هستیم یک فایل XML است که در زیر آورده شده است :

Entity Framework

حال الحاق شده به فایل edmx ، ما یک قالب T4 برای تولید محتوا و همچنین برای تولید کلاس های model داریم. پس این کلاس های model به طور معمول Plain Object CLR Objects (POCOs) هستند که در زیر نیز میتوانید ببینید :

Entity Framework

پس به طور معمول این هیچ وابستگی به هیچ EF API یا هر API خارجی ندارد.

اکنون برای درک طراحی جدول ، کاری که میتوانیم انجام دهیم راست کلیک کردن بر روی طراحی جدول و سپس گزینه ی table mapping برای جدول مورد نظر را انتخاب کنید و به شما table mapping برای آن همانطور که در زیر آورده شده است داده خواهد شد :

Entity FrameworkEntity Framework

به هر حال کاری که من میتوانم در Entity ها انجام دهم بالا بردن یا پایین آوردن خصوصیات یا نامگذاری مجدد آنها است و همچنین میتوانید تغییراتی که اعمال میکنید را با گزینه ی Undo به حال اولیه برگردانید. همچنین نکته ی جالب دیگر در این مورد امکان تغییر رنگ entity ها است. به بیان دیگر entity ها به طور پیش فرض همگی آبی رنگ هستند ولی شما میتوانید با انتخاب خصوصیت Fill Color ، آنها را به رنگ های مورد نظر خود تغییر دهید. همانطور که در شکل زیر نیز این مورد برایث شما نمایش داده شده است .

Entity Framework

یکی دیگر از ویژگی های جالب در اینجا این است که امکان تبدیل کردن یک دیاگرام به چندین دیاگرام وجود دارد. بهترین راه برای انجام این کار ساخت یک دیاگرام جدید در model browser است و سپس میتوانید با کشیدن و رها کردن موارد مورد نظرتان در model ساخته شده آن را ایجاد کنید.

هرچند تعداد زیادی سناریو وجود دارد که در آنها ما مشخصات جداول یا چیز های دیگری را در دیتابیس تغییر میدهیم. پس در این مورد نیاز داریم که designer مان را آپدیت کنیم ، برای انجام این کار نیز باید بر روی سطح designer راست کلیک کنیم و گزینه ی Update Model form database را انتخاب کنیم. با این کار designer ما آخرین تغییرات اعمال شدع در دیتابیس را نیز شامل میشود.

Entity Framework

حال میرسیم به یکی از مهمترین ویژگی های Entity Framework که همان Enum میباشد. بدون Enum ها مردم از workarounds استفاده میکردند. پس به طور معمول اگر بخواهیم از نوع Enum استفاده کنیم میتوانیم آنها را در برابر متغیر های نوع int به کار ببریم. بگذارید به شما نشان دهم که چگونه میتوانید متغیر از نوع Enum بسازید. باید به Model Browser برویم و بر روی Enum راست کلیک کرده و گزینه ی افزودن نوع Enum را انتخاب کنیم.

Entity FrameworkEntity Framework

پس به طور معمول انواع بسیاری برای Enum همانطور که در تصویر نشان داده شده برای انتخاب موجود است. حال بیاید یکی بسازیم.

Entity Framework

گزینه های پایین را تیک نزده باقی بگذارید. اینها معمولا عملگر های bitwise هستند. به بیان دیگر اگر من یک نیازمندی هایی برای چک کردن ترکیبی از اعضا داشته باشم ، آنگاه احتیاج داریم که از آن استفاده کنیم. حال اگر بر روی OK کلیک کنم ، یک نوع منحصر به فرد در شاخه ی Enum در model Browser ساخته میشود که در زیر نمایش داده شده است :

Entity Framework

حال اگر این Browser را ذخیره کنم ، یک model جدید برای Enum ساخته میشود ، همانطور که در زیر میبینید :

Entity FrameworkEntity Framework

پس از مشخص کردن Enum ، میتوانم یک نوع int را به نوع جدید Enum تبدیل کنم که در زیر میبینید :

Entity FrameworkEntity Framework

پس حالا زمانی که EF یک Query از یک دیتابیس ایجاد میکند ، در واقع Enum را به یک مقدار واقعی تبدیل میکند.

این هم از آخرین موضوعی که قصد داشتم در زمینه ی اولین ساخت دیتابیس توضیح بدهم.حال برای استفاده از آن در هر برنامه ای میتوانید از کتابخانه ی کلاس مشابه در پروژه اسفتاده کنید و مراجع آن را در همان جا اضافه کنید.

من همچنین علاوه بر کد Sample model را که در این دمو استفاده کرده ام ، ویدیوی آموزشی در همین زمینه نیز برایتان قرار داده ام.

امیدوارم از خواندن این مقاله لذت برده باشید.

داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

    صالحی پاسخ

    سلام،
    لینک کار نمیکنه!!

      داریوش فرخی پاسخ

      سلام
      لینک اصلاح شد !
      موفق باشید

    عبداللهی پاسخ

    خیلی از سوالاتمو پیدا کردم

    بهنام پاسخ

    لطفا لینک رو اصلاح کنید دانلو نمیشه لینک خرابه

      مسعود شریفی پاسخ

      انجام شد.

    reza پاسخ

    سلام
    متاسفانه لینک کار نمی کنه!

      مسعود شریفی پاسخ

      انجام شد

    نجمه پاسخ

    بسیار کاربردی و راهگشا
    خسته نباشید

      پویا قربانی پاسخ

      خواهش میکنم ، موفق پیروز باشید.

    امیرحسین رحمتی پاسخ

    سلام من وقتی میخوام روی ado net entity data model کلیک و ایجاد کنم این گزینه رو ندارم چکار کنم؟