در این مقاله چگونگی تبادل ایجاد دیتابیس با Entity Framework را خواهیم دید. هدف ، استفاده از دیتابیس موجود و ساخت یک مدل entity است که با EF designer در تماس باشد. پس برای شروع من با ساخت یک کتابخانه ی کلاس به عنوان یک data project شروع میکنیم تا مطمئن باشیم که میتوانیم به راحتی از آن در برنامه های دیگر نیز استفاده کنیم. برای درک بهتر شما علاوه بر توضیحات کامل همراه با تصاویر ، دموی این مقاله نیز قرار داده شده است. امیدوارم از آن استفاده کنید. با من همراه باشید …
Entity Framework
پس کتابخانه ی نمونه با فایل کلاس Sample در آن تولید میشود که در تصویر زیر نشان داده شده است. ولی من به این فایل کلاس احتیاج ندارم پس آن را حذف میکنیم.
و سپس Model ام را اضافه میکنم که پیدا کردنش بسیار آسان است. به شاخه ی data بروید و به دنبال ADO.Net Entity Data Model بگردید و آن را انتخاب کنید و نامی مناسب برای آن انتخاب کنید و آن را اضافه کنید.
سپس به انتخاب موارد جانبی میپردازیم. به عنوان مثال آیا مایل به ساخت بر روی یک دیتابیس موجود هستید یا میخواهید یکی جدید تولید کنید. من گزینه ی اول را انتخاب میکنم . همانند شکل زیر :
از آنجایی که من قبلا Server Explorer را به عنوان دیتابیس مقصد انتخاب کرده ام ، پیغام زیر را همراه با Connection String دریافت خواهم کرد. این Connection String در فایل App.Config نیز ذخیره میشود.
حال در مورد بعدی جداول Tables ، Views ، Stored Procedures یا functions که لازم دارید را انتخاب کنید. من آنهایی را که هب نظرم برای مثالمان مورد نیاز است را انتخاب میکنم.
حال نکته ای مهم در اینجا که باید در نظر بگیریم این است که من ۳ Checkbox دارم و به طور پیش فرض همه ی آنها تیک خورده اند. اولین Checkbox برای مشخص کردن این است که آیا اسامی را با S جمع در انتها ینویسد یا همانگونه به صورت مفرد وارد کند. به بیان دیگر با فعال کردن این گزینه اگر نامی به صورت مفرد وارد کنید ، این Wizard آن را به صورت جمع تبدیل میکند. گزینه ی بعدی این است که شامل ستون foreign Keys در model باشد. این گزینه نیز به صورت پیش فرض انتخاب شده است. اگر شما ارتباط یا Relationship ای در دیتابیس تان مشخص کرده باشید ، آنگاه شما یک کلید اصلی و کلید خارجی خواهید داشت ، پس EF این را تشخیص میدهد و Relation های پس از آن را ایجاد میکند. حال گزینه ی آخر در رابطه با این است که wizard چگونه Stored Procedure و function ها را کنترل میکند. هرگاه این گزینه انتخاب شده باشد (به صورت پیش فرض انتخاب شده) wizard کار را آسان میکند. همچنین با ارایه ی یک انتخاب میتوانید آن را در کد انتخاب کنید. حال بر روی Finish کلیک کنید. Entity Diagram به همراه تعدادی اخطار ساخته میشود.
ممکن است تعدادی پیغام و اخطار نیز در آن ببینید. این اوکی است. نیازی نیست که نگران آنها باشیم. به طور معمول اتفاقی که می افتد این است که یک قانون عمومی در چارچوب Entity وجود دارد که که هر جدولی باید یک کلید اصلی داشته باشد که در این مورد ما تعدادی view نیز داریم که دارای کلید اصلی نیستند. پس wizard یک Composite key بر روی همه ی ترکیبات غیر Null پذیر در view ایجاد میکند. پس جدا از آن اخطار ها تعداد زیادی عملیات توسط wizard در پشت صحنه انجام میشود. که در تصویر زیر آورده شده است. خط هایی که بین اشیا میبینید همان Relationship هایی است که بر اساس کلید های خارجی ساخته شده اند.
حال در این بین designer همه ی entity ها را در یک مکان به من میدهد ، بعضی اوقات تشخیص دادن جداول ، View ها و Procedure ها مشکل است. اما راهی برای چک کردن آنها نیز هست که چک کردنmodel Browser با راست کلیک کردن بر روی designer همانند زیر است :
با انجام این کار ، دسترسی به model browser در قسمتی از چارچوب ویژوال استودیو همانند زیر خواهیم داشت :
حال تعدادی key points در اینجا وجود دارد که باید درک شوند ، پس جایی که توابع و Stored Procedure ها قرار دارند ، در قسمت واردات توابع است. پس اینها به توابع تبدیل میشوند ، به بیان دیگر توابعی که اجرا میشوند نتایج را بارمیگردانند و کاری که wizard برای هر تابع انجام میدهد این است که آن را به عنوان یک نوع پیچیده ایجاد شده بازمیگرداند. یک چیز دیگر که با نام توابع scalar valued شناخته میشوند ، وجود دارد. توابع scalar valued چیزی است که در Query ها استفاده میشود.
اکنون مورد بعدی که باید درک کنیم این است که ارائه ی تصویری model که ما در حال مشاهده ی آن هستیم یک فایل XML است که در زیر آورده شده است :
حال الحاق شده به فایل edmx ، ما یک قالب T4 برای تولید محتوا و همچنین برای تولید کلاس های model داریم. پس این کلاس های model به طور معمول Plain Object CLR Objects (POCOs) هستند که در زیر نیز میتوانید ببینید :
پس به طور معمول این هیچ وابستگی به هیچ EF API یا هر API خارجی ندارد.
اکنون برای درک طراحی جدول ، کاری که میتوانیم انجام دهیم راست کلیک کردن بر روی طراحی جدول و سپس گزینه ی table mapping برای جدول مورد نظر را انتخاب کنید و به شما table mapping برای آن همانطور که در زیر آورده شده است داده خواهد شد :
به هر حال کاری که من میتوانم در Entity ها انجام دهم بالا بردن یا پایین آوردن خصوصیات یا نامگذاری مجدد آنها است و همچنین میتوانید تغییراتی که اعمال میکنید را با گزینه ی Undo به حال اولیه برگردانید. همچنین نکته ی جالب دیگر در این مورد امکان تغییر رنگ entity ها است. به بیان دیگر entity ها به طور پیش فرض همگی آبی رنگ هستند ولی شما میتوانید با انتخاب خصوصیت Fill Color ، آنها را به رنگ های مورد نظر خود تغییر دهید. همانطور که در شکل زیر نیز این مورد برایث شما نمایش داده شده است .
یکی دیگر از ویژگی های جالب در اینجا این است که امکان تبدیل کردن یک دیاگرام به چندین دیاگرام وجود دارد. بهترین راه برای انجام این کار ساخت یک دیاگرام جدید در model browser است و سپس میتوانید با کشیدن و رها کردن موارد مورد نظرتان در model ساخته شده آن را ایجاد کنید.
هرچند تعداد زیادی سناریو وجود دارد که در آنها ما مشخصات جداول یا چیز های دیگری را در دیتابیس تغییر میدهیم. پس در این مورد نیاز داریم که designer مان را آپدیت کنیم ، برای انجام این کار نیز باید بر روی سطح designer راست کلیک کنیم و گزینه ی Update Model form database را انتخاب کنیم. با این کار designer ما آخرین تغییرات اعمال شدع در دیتابیس را نیز شامل میشود.
حال میرسیم به یکی از مهمترین ویژگی های Entity Framework که همان Enum میباشد. بدون Enum ها مردم از workarounds استفاده میکردند. پس به طور معمول اگر بخواهیم از نوع Enum استفاده کنیم میتوانیم آنها را در برابر متغیر های نوع int به کار ببریم. بگذارید به شما نشان دهم که چگونه میتوانید متغیر از نوع Enum بسازید. باید به Model Browser برویم و بر روی Enum راست کلیک کرده و گزینه ی افزودن نوع Enum را انتخاب کنیم.
پس به طور معمول انواع بسیاری برای Enum همانطور که در تصویر نشان داده شده برای انتخاب موجود است. حال بیاید یکی بسازیم.
گزینه های پایین را تیک نزده باقی بگذارید. اینها معمولا عملگر های bitwise هستند. به بیان دیگر اگر من یک نیازمندی هایی برای چک کردن ترکیبی از اعضا داشته باشم ، آنگاه احتیاج داریم که از آن استفاده کنیم. حال اگر بر روی OK کلیک کنم ، یک نوع منحصر به فرد در شاخه ی Enum در model Browser ساخته میشود که در زیر نمایش داده شده است :
حال اگر این Browser را ذخیره کنم ، یک model جدید برای Enum ساخته میشود ، همانطور که در زیر میبینید :
پس از مشخص کردن Enum ، میتوانم یک نوع int را به نوع جدید Enum تبدیل کنم که در زیر میبینید :
پس حالا زمانی که EF یک Query از یک دیتابیس ایجاد میکند ، در واقع Enum را به یک مقدار واقعی تبدیل میکند.
این هم از آخرین موضوعی که قصد داشتم در زمینه ی اولین ساخت دیتابیس توضیح بدهم.حال برای استفاده از آن در هر برنامه ای میتوانید از کتابخانه ی کلاس مشابه در پروژه اسفتاده کنید و مراجع آن را در همان جا اضافه کنید.
من همچنین علاوه بر کد Sample model را که در این دمو استفاده کرده ام ، ویدیوی آموزشی در همین زمینه نیز برایتان قرار داده ام.
امیدوارم از خواندن این مقاله لذت برده باشید.
سلام،
لینک کار نمیکنه!!
لایک
سلام
لینک اصلاح شد !
موفق باشید
۹
خیلی از سوالاتمو پیدا کردم
۶
لطفا لینک رو اصلاح کنید دانلو نمیشه لینک خرابه
۷
انجام شد.
۷
سلام
متاسفانه لینک کار نمی کنه!
لایک
انجام شد
۶
بسیار کاربردی و راهگشا
خسته نباشید
۷
خواهش میکنم ، موفق پیروز باشید.
۶
سلام من وقتی میخوام روی ado net entity data model کلیک و ایجاد کنم این گزینه رو ندارم چکار کنم؟
۶