ساخت دیتابیس و جداول آن به روش CodeFirst

ساخت database در روش کدفرست در ef core

در روش کدفرست چگونه یک Database ایجاد کنم ؟ در روش  Code First چگونه یک جدول به دیتابیس اضافه کنم ؟

درود ، من آرزو ابراهیمی مدرس دوره اموزش فارسی asp.net core ، با یک مقاله‌ی آموزشی بسیار مفید و کاربردی از فصل اموزش EF Core در خدمت شما دوستان عزیز هستم.

پیش از شروع مطالعه‌ی این مقاله اگر با روش Code Fiest در Entity Framework Core آشنایی ندارید پیشنهاد میکنم مقاله‌ی روش Code First چیست را مطالعه بفرمایید.

ساخت Database و جداول آن در SQL Server به روش Code First در Entity Framework Core

در این مقاله آموزشی میخواهم به صورت گام گام ،ساخت دیتابیس در اسکیوال سرور به روش کدفرست را آموزش دهم پس مراحل زیر را به دقت انجام دهید تا در انتهای این مقاله آموزشی بتوانید به روش Code First یک دیتابیس که شامل یک جدول است در SQL Server ایجاد نمایید.

گام اول : ساخت یک پروژه جدید در ویژوال استودیو

یک پروژه ASP.NET Core ایجاد کنید اگر می‌خواهید یک پروژه با استفاده از الگوی Web Application (Model – View – Controller) ایجاد کنید پیشنهاد می‌کنم مقاله ساخت پروژه در asp core را مطالعه نمایید.

من می‌خواهم یک پروژه با الگوی Empty ایجاد کنیم تا این پروژه شامل موارد اضافه ای که به آنها در این فصل آموزشی نیاز ندارم ، نباشد ، خب پس یک پروژه از نوع الگوی Empty بسازید و برای آن یک نام انتخاب کنید (من نام پروژه خودم را EFCore-C05 قرار دادم اما شما هر نام دلخواهی می‌توانید برای این پروژه قرار دهید)

ایجاد پروژه ASP.NET Core بر اساس الگوی Empty
asp.net core project with empty template

گام دوم : نصب پکیج های لازم EF Core

حالا باید پکیج های مورد نیاز Entity Framework Core را نصب کنید ، پیشنهاد می‌کنم مقاله افزودن EF Core به پروژه را مطالعه نمایید و پکیج‌های ذکر شده در این مقاله‌ی آموزشی را نصب کنید.

گام سوم : مشخص کردن موجودیت ها و تعریف Domian Class ها و پیکربندی آن ها

حالا می‌خواهیم یک Domain Class تعریف کنیم ، فرض کنید که می‌خواهیم یک سامانه‌ی تحت وب پیاده سازی کنیم تا دانشجویان یک دانشگاه ، بتوانند اطلاعات خود را در این سامانه ثبت کنند، پس این سامانه باید این اطلاعات را در یک دیتابیس ذخیره کند . خب به نظرتون پروژه‌ی کوچکی که تعریف کردیم شامل چه موجودیت هایی است؟
خب شاید شما ندونید که موجودیت یا entity اصلا چی هست برای همین ابتدا یک تعریف ساده از موجودیت خدمت شما ارائه میدهم و بعد به سوال بالا پاسخ میدهم.

[box type=”info” align=”alignright” class=”” width=””]

موجوديت یا entity ، فرد ، شیء ، مکان يا مفهومی در سیستم است که می خواهیم اطلاعاتی درباره آن داشته باشیم. هر موجودیت می تواند مجموعه ای از صفات را داشته باشد.

[/box]

در پاسخ سوال فوق باید بگم که در پروژه ای تعریف کردیم موجودیت دانشجو  را داریم. در روش Code First برای هر موجودیت یک Domain Class تعریف می‌کنیم ، پس داخل پروژه یک پوشه به نام Models ایجاد کنید و داخل این پوشه یک کلاس به نام Student برای موجودیت دانشجو بسازید برای این منطور روی پوشه Models راست کلیک کرده سپس گزینه  Add و بعد از آن گزینه Class را از منویی که باز می شود انتخاب کنید. (مطابق تصویر زیر)

افزودن کلاس دامنه به پروژه asp.net core
add domain class in asp.net core project

سپس در پنجره New Item یک نام برای کلاس انتخاب کرده (من نام این کلاس را Student قرار میدهم) و روی Add کلیک کنید تا این کلاس برای شما ساخته شود. (همانند تصویر زیر)

قراردادن نام برای کلاس در پروژه asp.net core
add name for class in asp.net core

همانطور که اشاره کردم ، هر موجودیت یکسری ویژگی یا صفات دارد مثلا از جمله ویژگی های یک دانشجو می توان به شماره دانشجویی ، نام ، نام خانوادگی ، تاریخ تولد و … اشاره کرد حالا در کلاس Student برای هر ویژگی یا صفت دانشجو یک Property تعریف کنیم. به صورت زیر :

public class Student
{
        public string StudentId { get; set; }
        public string Name { get; set; }
        public string Family { get; set; }
        public DateTime BirthDate { get; set; }
}

نکته : برای کدنویسی سریع تر می‌توانید برای تعریف Property عبارت prop را نوشته و دوبار دکمه tab صفحه کلید را فشار دهید.

خب تبریک میگم شما یک Domain Class برای موجودیت دانشجو ایجاد کردید و حالا در روش Code First این کلاس به یک جدول به نام Students تبدیل می‌شود و پراپرتی های این کلاس هم ستون‌های این جدول را تشکیل می‌دهند.

گام چهارم : تعریف کلاس Context

حالا باید یک کلاس Context برای پروژه ایجاد کنیم برای این منظور روی پوشه Models راست کلیک کرده سپس Add و بعد از آن گزینه‌ی Class را انتخاب کنید حالا برای کلاس Context یک نام قرار دهید من نام این کلاس را StudentDBContext قرار میدهم. (شما هر نام دلخواهی که میخواهید می توانید برای این کلاس قرار دهید اما بهتره که نام کلاس به واژه Context ختم شود)

نکته : کلاس Context پروژه کلاسی هست که از کلاس DbContext ارث بری می‌کند پس برای ارث بری این کلاس از DbContext بعد از نام کلاس از علامت : استفاده کرده و سپس نام کلاس DbContext را می‌نویسیم به صورت زیر :

public class StudentDBContext : DbContext
    {
        public StudentDBContext(DbContextOptions options) : base(options)
        {

        }

        public virtual DbSet<Student> Students { set; get; }
    }

حالا باید سازنده کلاس والد را هم صدا بزنیم و پارامترهای موردنیاز این سازنده را به آن پاس دهیم ، برای این منظور در کد بالا یک Constructor یا سازنده برای کلاس StudentDBContext تعریف کردیم.

گام چهارم : تنظیم Connection String یا رشته اتصال در فایل appsettings.json

حالا به سراغ فایل appsettings.json می‌رویم تا connectionString یا رشته اتصال به دیتابیس را تعریف کنید ، کدهای زیر را در فایل appsettings.json خواهد دید :

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

کد زیر را به فایل appsettings.json اضافه کنید ، همانطور که در کد زیر مشاهده می‌کنید من نام sqlserver را برای این کانکشن استرینگ قرار دادم ولی شما می‌توانید یک نام دلخواه برای آن قرار دهید.

  "ConnectionStrings": {
    "SqlServer": "Data Source=(local);Initial Catalog=StudentDB;Integrated Security=true"
  },

در کد بالا رشته اتصال را تعریف کردیم ، (دقت کنید که حتما باید SQL Server روی سیستم شما نصب شده باشد) ، مقدار Data Source را (local) یا . قرار دهید تا برنامه به اسکیوال سرور روی سیستم شما متصل شود سپس مقدار Initial Catalog را برابر نام دیتابیسی قرار دهید که میخواهید برای شما در اسکیوال سرور ایجاد شود.

محتویات فایل appsettings.json به صورت زیر خواهد بود :

{
  "ConnectionStrings": {
    "SqlServer": "Data Source=(local);Initial Catalog=StudentDB;Integrated Security=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

گام پنجم : اضافه کردن migration

حالا پنجره Package Manager Console را باز کنید معمولا این پنجره در بخش پایین ویژوال استدیو برای شما باز می شود و برای اضافه کردن یک migration جدید ، دستور add-migration را بنویسید و بعد از این دستور یک نام برای migartion قرار دهید من نام ماگریشن را GenerateDB قرار میدهم ولی شما هر نام دلخواهی می‌توانید برای آن قرار دهید طبق تصویر به صورت زیر :

افزودن migration به پروژه asp.net core
add migration in asp.net core

بعد از وارد کردن دستور add-migration یک پوشه به نام migrations به Solution Explorer اضافه می‌شود که شامل فایل های مربوط به migration است.

پوشه migrations در Solution Explorer
migrations folder in solution explorer in asp.net core

گام ششم : ساخت دیتابیس

حالا در پنجره Package Manager Console دستور update-database را وارد کنید و سپس دکمه enter صفحه کلید را فشار دهید تا دیتابیس StudentDB در اسکیوال سرور برایتان ایجاد شود.

ساخت دیتابیس در روش کدفرست
update-database command in asp.net core

حالا نرم افزار MSSQL را اجرا کنید تا دیتابیس StudentDB را مشاهده کنید همانند تصویر

دیتابیس ایجاد شده در اسکیوال سرور
generated database in sql server

دوستان عزیز این مقاله آموزشی بسیار کاربردی از سری مقالات آموزش تصویری asp net core هم به پایان رسید امیدوارم که از این مقاله آموزشی لذت برده باشید سوالی داشتید حتما مطرح کنید سعی می‌کنم خیلی سریع پاسخگوی شما عزیزان باشم.

 

فیلم آموزشی asp.net core 2

آرزو ابراهیمی
بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و … بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

فیلم آموزشی asp.net core 2

43 نظر

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
دوره سئو، رایگان شد.
فرصتی رایگان برای یادگیری
کاراکتر اشاره گر
دوره سئو، رایگان شد.
فرصتی رایگان برای یادگیری
کاراکتر اشاره گر