آموزش DataBase First در MVC – افزودن DataBase و Model
در روش DataBase First ابتدا جداول خود را در Sql ایجاد میکنیم و سپس توسط وب سایت خود با آن ارتباط برقرار میکنیم. این روش تقریبا منسوخ شده میباشد ولی در پروژه های کوچک که نیاز به سریع اجرا شدن دارد، میتواند راه گشا باشد.
توسط نرم افزار Microsoft Sql Server یک دیتابیس ایجاد میکنیم و جدول خود را به آن اضافه میکنیم. توجه داشته باشید که در این مثال نام سرور ما . یا همان دات به معنای سرور محلی است، نام دیتابیس ما dbMyWebsite است و نام جدول ما T_Users میباشد و فیلد های آن به شرح ذیل است.
DataBase
- در فیلد هایی که قرار است از زبان شیرین فارسی استفاده کنید به جای استفاده از متغییر varchar از nvarchar استفاده کنید.
- در فیلد هایی که قرار است از Boolean یا همان True و False استفاده کنید از متغییر Bit استفاده کنید.
افزودن Model
با توجه به دیتابیسی که در بالا ساختیم میبایست یک مدل معادل دیتابیس و به ازای هر جدول از دیتابیس یک مدل ایجاد کنیم. برای افزودن مدل به پروژه مراحل زیر را انجام میدهیم.
نکته : به ازای هر جدول باید یک مدل ایجاد کنیم.
- مرحله یک : روی پوشه Models کلیک راست کرده و از گزینه Add گزینه New Item را انتخاب میکنیم.
افزودن Model
- مرحله دو : در پنجره جدید گزینه Data و آیتم ADO.NET Entity Data Model را انتخاب میکنیم.
ADO.NET Entity Data Model
- مرحله سه : در پنجره ای که باز میشود از ما پرسیده میشود مدل خود را از روی چه چیزی میخواهید بسازید و ما گزینه EF Designer from database یعنی از روی دیتابیس را انتخاب میکنیم.
EF Designer from database
- مرحله چهارم : در پنجره جدیدی که باز میشود از ما میپرسد سرور ما کجاست؟ در صورتی که قبلا Conection ایجاد کرده باشیم که Conection را انتخاب میکنیم و در غیر اینصورت باید روی New Conection کلیک کنید.
New Connection
- مرحله پنجم : در پنجره جدیدی که باز میشود باید Server Name و DataBase Name را وارد کرده و روی دکمه OK کلیک کنیم.
Add Server And DataBase
- مرحله ششم : حال دوباره به پنجره قبل منتقل میشویم و کانکشن جدید ما اضافه شده و کافی است روی Next کلیک کنیم.
در پایین صفحه از ما پرسیده شده که آیا میخواهید در web config کانکشن شما با نام dbMyWebsiteEntities ذخیره شود ؟ ما تیک ذخیره را میزنیم و دیگر کانکشن جدید اضافه نمیکنیم و از همین کانکشن استفاده میکنیم.
Connection and DataBase Name
- مرحله هفتم : Entity Framework 6.x را انتخاب و روی Next کلیک کنیم.
Entity Framework 6.x
- مرحله هشتم : جدول هایی که میخواهیم به پروژه اضافه شود را انتخاب میکنیم و تیک include foreign key columns in the model را میزنیم سایر موارد نباید تیک داشته باشد و روی Finish کلیک کنیم.
include foreign key columns in the model
مدل ما ایحاد شد و ۲ کلاس در این مدل برای ما مهم است :
ADO NET Model
- کلاس شماره یک Model1.Context.Cs : معادل دیتابیس میباشد.توسط این کلاس است که میتوانیم به دیتابیس خود دسترسی داشته باشیم. و داخل آن کانکشنی به نام dbMyWebsiteEntities وجود دارد که توسط آن میتوانیم به دیتابیس و جدول مورد نیاز خود متصل شویم.
dbMyWebsiteEntities db = new dbMyWebsiteEntities();
- کلاس شماره دو T_Users.Cs : معادل جدول معرفی شده.
var users= db.T_Users;
توجه : حتما بعد از ساخت مدل پروژه را Build کنید توسط CTRL + SHIFT + B
آپدیت Model و DataBase
گاهی پیش میآید که باید یک فیلد جدید به دیتابیس خود اضافه کنیم مثلا در مثال بالا قصد داریم تاریخ ثبت نام کاربران را نیز اضافه کنیم. توجه داشته باشید که هرگونه تغییر در دیتابیس باعث پاک شدن دیتا انوتیشن ها و … میشود پس حتما یک کپی از پروژه خود بگیرید.
- گام اول : از پروژه خود یک کپی بگیرید.
- گام دوم : تغییرات مورد نیاز را در دیتابیس خود اعمال کنید و آن را ذخیره کنید.
- گام سوم : روی مدل خود کلیک کنید تا به صفحه دیزاین مدل بروید.
update-model-database-first
گام چهارم : در صفحه دیزاین مدل کلیک راست کرده و گزینه Update Model From DataBase را انتخاب مبکنیم.
Update Model From DataBase
گام پنجم : در پنجره Update Wizard یه زبانه Refresh میرویم و جدول خود را سلکت میکنیم و روی دکمه Finish کلیک میکنیم.
Refresh Model And Update Model