• ASP.NET Core 1 – قسمت 26
ASP.NET Core 1 – قسمت 26
1395/02/06 - 00:38:16 // MVC 5 & 6 // 0 نظر // 538 بازدید

روند ایجاد دیتابیس و پس از آن کنترل تغییرات در بدنه جداول و محتوای Entity ها از طریق هسته Migration در EF کنترل خواهد شد . همه اینها در EntityFrameWork.Commands وجود داشته و در این بخش قصد داریم از آن استفاده کنیم .

بسمه تعالی

ASP.NET Core 1 قسمت بیست و ششم

روند ایجاد دیتابیس و پس از آن کنترل تغییرات در بدنه جداول و محتوای Entity ها از طریق هسته Migration در EF کنترل خواهد شد . همه اینها در EntityFrameWork.Commands وجود داشته و در این بخش قصد داریم از آن استفاده کنیم .

در عمل Migration Code یکسری کد C# است که سبب اعمال شدن وضعیت و DataBase Schema بر روی سرور و کنترل تغییرات خواهد شد. تغییرات باید پس از مرحله اول و ایجاد شدن دیتابیس Apply گردد . همه اینها در Commands خلاصه شده و قابل انجام خواهد بود .

برای پیگیری این مراحل باید یک Command Console باز کنید و مراحل را به دقت پیگیری کنید . از طریق دستوارت متعلق به 2000 سال پیش MS-DOS مانند CD و ... وارد فولدر Src در فولدر Root پروژه بشوید . اگر یک DIR بگیریم ، باید فایلهای پروژه مشابه زیر نمایش داده شود .

 
خوب حالا فایل Project.Json هم در لیست مشخص است . خوب حالا باید از طریق dnvm که یک Command برای مدیریت Clr و دستوارت میباشد ، ابتدا ورژن Core دات نت که قرار است از آن استفاده کنیم را مشخص کنیم.

خوب اول ببینیم اصلن چه ورژنهایی بر روی سیستم نصب شده داریم . برای اینکار از dnvm list استفاده میکنیم.

 
 
 

خوب مسلمن هدف ما استفاده از Core 1 می باشد و برای رسیدن به این هدف از دستوری مطابق زیر استفاده میکنم .

Dnvm use 1.0.0-rc1-update2 –p

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

 
 
خوب حالا با استفاده از دستور dnx می توان لیست پارامترهای این دستور را مشاهده نمود . خوب اگر به محتوای فایل Project.json نگاه کنید ، خواهید دید که در قسمت Command یک آیتم EF وجود دارد که باید الان توسط dnx اجرایی شود .

دستور dnx ef را در Command Prompt وارد کنید .

 
 
 
خوب مطابق بالا خواهید دید که لیست Option های این پارامتر مشاهده خواهد شد. خوب مسلمن من به Migration نیاز دارم ، پس دستور به شکل زیر خواهد بود .

Dnx ef migrations

 
 
 

خوب حالا باز از ما سوال میکند که قصد Add یا گرفتن لیست و .... داریم و باید آنرا تایین کنیم. من قصد add کردن دارم و به شکل زیر عمل خواهم کرد .

Dnx ef migrations add

 
 
 
 

خوب حالا از من یک Parameter به جای Name میخواهد و من دستور قبلی را به افزودن یک نام دوباره اجرا خواهم کرد.

یک نکته : در طول روال کار در پروژه من یک کاما در فایل Appsetting.json را فراموش کرده ام بگذارم و دقت کنید این کاما بعد از خط اول درون فایل باید باشد. یعنی درون فایل باید به شکل زیر باشد . اگر این خطا را برطرف نکنید ، روند اجرای این دستور با مشکل روبرو خواهد شد . وضعیت را مشابه تصویر زیر قرار دهید .

 
 
 
 

حالا دستور را مطابق زیر اجرا کنید .

Dnx ef migrations add v1

چون فقط یک DbContext داریم به سادگی این روند ایجاد و پیام زیر نمایش داده خواهد شد.

 
 
 

من اولین Migration را V1 نامیدم. حالا باید درون پروژه یک فولدر به نام Migrations ایجاد شده باشد . داخل فایل را با هم ببینیم. همانطور که میبینید Migration در عمل یک کلاس حاوی دستورات C# است برای ساختن و یا تغییر در دیتابیس بر اساس Entity ها و تغییرات آنها .

 
 

همانطور که میبینید با دستور جدول را میسازد و حتی نام جدول را در قسمت Name قرار است Restaurant قرار دهد. خلاصه کاملن مشهود است که یک جدول با خواص آن توسط دستور قرار است ایجاد گردد.

حالا چگونه این کد باید اجرا و دیتابیس ایجاد گردد؟. مراحل زیر را پیکیری کنید

ابتدا دوباره وارد کنید dnx ef و جزء Option ها میتوانید Database را ببینید .

 
 

اکر عبارت dnx ef database را وارد کنم ، عبارت update را مشاهده خواهید کرد .

 
 

خوب حالا اگر عبارت Update را به کامند اضافه کنم ، به یک پیام خطا بر خواهم خورد . من منتظر این پیام بودم و در اینجا حالا باید این اشتباه در Connection String خود را برطرف کنیم.

 
 

مشکل عدم وجود یک Space در عبارت DataSource است که باید Data Source باشد و آنرا در فایل Appsetting تصحیح خواهم کرد .

 
 

حالا مشکل بر طرف شده و می توان Command قبلی را دوباره اجرا کرد .

نکته : اگراین بار به User ایراد گرفت عبارت ;integrated security=true را به Connection String اضافه کنید و دستور را دوباره اجرا کنید.

 
 

خلاصه اگر پیام خطا نگیرید ، پیام موفقیت به شکل زیر است .

 
 

حالا اگر از طریق Sql Server Object Explorer نگاه کنید یک دیتابیس به نام RestaurantDb ساخته شده و جدوال و ... و حتی Data Annotation ها مثل طول رشته و ... در آن اعمال شده است . من مستقیم درون SQL Server رفته و وجود دیتابیس را در آنجا مشاهده خواهم کرد .

 
 

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

دانلود سورس پروژه

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
ارسال نظر