در بخش قبلی با Domain Model که در حال حاضر بسیار ساده میباشد، آشنا شدیم. در این قسمت سعی دارم اندکی این Model را پیچیده تر کنم تا به وضعیت واقعی نزدیکتر شویم، چون درعملیاتهای واقعی، Model اینقدر ساده و خالی از پیچیدگی نخواهد بود.
بسمه تعالی
آموزش یک پروژه ASP.NET MVC 5 از ابتدا تا انتها – سیستم ویدئو کلوپ – بخش شانزدهم
در بخش قبلی با Domain Model که در حال حاضر بسیار ساده میباشد، آشنا شدیم. در این قسمت سعی دارم اندکی این Model را پیچیده تر کنم تا به وضعیت واقعی نزدیکتر شویم، چون درعملیاتهای واقعی، Model اینقدر ساده و خالی از پیچیدگی نخواهد بود.
در کلاس Customer، باید فیلدها و Property های جدید ظهور نماید.
در تصویر بالا مشخص است که قرار است 2 فیلد IsSubscribedToNewLetter و MembershipType هم به Model افزوده گردد.
ابتدا اجازه بدهید یک قانون برای برنامه خود ایجاد کنیم. MembershipType دارای انواع مختلف خواهد بود. انواعی مانند Pay as you go ، Monthly و ... که در جدول زیر میتوانید آنها را مشاهده کنید.
تصویر بالا وضعیت و قوانین MembershipType است و نشان میدهد که مثلا عضویت ماهانه چقدر تخفیف خواهد داشت و ...
خوب ظاهرا الان یک کلاس جدید برای پیاده سازی MembershipType نیاز داریم. هر مشتری باید یک نوع MembershipType داشته باشد و این اجباری است.پس مشخص شد که نوع رابطه یک به یک است و فیلدهای لازمه هم به شکل زیر خواهد بود.
خوب حالا به محیط پروژه می رویم و تغییرات لازمه را ایجاد میکنیم.
اولین تغییر ایجاد یک Property جدید در Customers میباشد. یک فیلد به نام IsSubscribedToNewsletter خواهد بود.
خوب الان وقت استفاده از Migration است.
در صورت موفق بودن روند Migration مانند تصویر بالا، میتوان به سراغ Update کردن دیتابیس رفت.
خوب خطا و ایراد هم نداشتیم و عملیات Migration به درستی انجام شد. حالا وقت ایجاد کلاس MembershipType و Property های آن میباشد. درون Model Folder این کلاس را به شکل زیر ایجاد نمایید.
این کلاس بعدا باز هم دستخوش تغییر خواهد شد. تا اینجا فعلا به شکل بالا خواهد بود. حالا به سراغ کلاس Customer میرویم تا رابطه بین این دو Entity برقرار گردد.
حالا دقت کنید. در مواردی هست که ما قصد نداریم همه یک Objectرا به دلیل وجود رابطه بین دو Entity به صورت کامل Load کنیم. اینجاست که یک فیلد جدید مانند ID ایجاد میکنیم تا به صورت Foreign Key عمل نماید.
خوب حالا وقت انجام عملیات Migration میباشد.
و دوباره Update Database
خوب این مراحل هم تمام شد و حالا شما با روند ایجاد تغییرات در Model هم آشنا هستید. حالا میتوان در بخش بعدی به سراغ SEED کردن رفت و مراحل را پیگیری نمود.
دانلود سورس پروژه