ساخت دیتابیس توسط مایگریشن در Code First در Asp.net Mvc Core
لطفا راهنماییم کنید برای ساخت دیتابیس توسط مایگریشن در Code First در Asp.net Mvc Core باید دقیقا چیکار کرد؟ آموزشی هست که این کار رو به صورت مرحله به مرحله انجام بده ؟
پاسخ هوش مصنوعی
برای ساخت دیتابیس توسط مایگریشن در Code First در ASP.NET MVC Core، مراحل زیر را دنبال کنید:
- 
        ابتدا یک پروژه ASP.NET Core MVC جدید ایجاد کنید. 
- 
        مدل های داده ای خود را تعریف کنید. به عنوان مثال، ایجاد یک مدل "Product": public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } }
- 
        یک کلاس Context برای دیتابیس ایجاد کنید. این کلاس باید از DbContext ارث بری کند: using Microsoft.EntityFrameworkCore; public class AppDbContext : DbContext { public AppDbContext(DbContextOptionsoptions) : base(options) { } public DbSet Products { get; set; } } 
- 
        پیکربندی DbContext را در Startup.csانجام دهید:public void ConfigureServices(IServiceCollection services) { services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); } 
- 
        سپس، با استفاده از پنل Package Manager Console، مایگریشن را ایجاد کنید. دستور زیر را وارد کنید: Add-Migration InitialCreate
- 
        مایگریشن ایجاد شده را برای ایجاد دیتابیس اعمال کنید: Update-Database
- 
        اکنون دیتابیس شما ایجاد شده و آماده استفاده است. 
شما می توانید این مراحل را برای اضافه کردن مدل های بیشتری یا تغییرات در ساختار دیتابیس تکرار کنید. برای اطلاعات بیشتر، مستندات رسمی Microsoft را بررسی کنید.
ساخت دیتابیس توسط مایگریشن در Code First

ساخت دیتابیس توسط مایگریشن و انتیتی فریم ورک کد فرست به این صورت هست که در ابتدا شما باید انتیتی ها و ساختار دیتابیس رو مشخص کنید و سپس توسط دستورات مایگریشن این جداول و ساختارها رو به دیتابیس منتقل می کنید. برای اینکه بهتر این موضوع رو متوجه بشید یک مثال عملی رو انجام میدیم.
ساخت دیتابیس توسط مایگریشن در Code Firs در Asp.net Mvc Core
خب در ابتدا یک پروژه جدید از نوع Asp.net Core ایجاد کنید. (ایجاد پروژه Asp.net mvc core در ویژوال استودیو 2019)
بعد از اینکه پروژه شما ایجاد شد به ترتیب مراحل زیر را دنبال کنید.
ایجاد کلاس DbContext
در انتیتی فریم ورک کلاسی وجود دارد به نام DbContext. این کلاس در واقع نماینده دیتابیس شما در پروژه می باشد. یعنی هر جدول و یا هر ساختاری که دیتابیس شما در Sql Server داشته باشد در این کلاس تعریف می شود. بنابراین روی پوشه Models کلیک راست کنید و یک کلاس جدید به نام ApplicationDbContext ایجاد کنید. این کلاس از کلاس DbContext مشتق می شود.
نکته : دقت کنید که برای استفاده از کلاس DbContext باید پکیج Microsoft.EntityFrameworkCore رو از طریق nuget نصب کنید. (نصب پکیج از nuget در ویژوال استودیو)
using Microsoft.EntityFrameworkCore;
namespace CodeFirstDataBase.Models
{
    public class ApplicationDbContext : DbContext
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
        {
        }
    }
}
همانطور که مشاهده می کنید کلاس ApplicationDbContext از کلاس DbContext مشتق شده است. همچنین برای این کلاس یک سازنده همنام با نام خود کلاس تعریف کردیم. (سازنده کلاس چیست) شما هم کدها را مشابه با کدهای بالا بنویسید.
در حال حاضر Solution پروژه به این شکل می باشد.

تنظیمات کلاس Startup.cs - افزودن سرویس دیتابیس
خب حالا باید در کلاس Startup.cs تنظیماتی انجام دهید و سرویس دیتابیس را به پروژه اضافه کنید و همچنین کلاس ApplicationDbContext را به عنوان نماینده دیتابیس در پروژه معرفی کنید. بنابراین این کلاس را باز کنید و در متد ConfigureService دستورات زیر را بنویسید.
public void ConfigureServices(IServiceCollection services)
{
   //این کدها اضافه شود
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection")));
    ////////
    services.AddControllersWithViews();
}
خب در کدهای بالا سرویس AddDbContext به پروژه اضافه شده. در این سرویس کلاس ApplicationDbContext به عنوان نماینده دیتابیس در پروژه معرفی شده. همچنین دقت کنید با توجه به اینکه از دستور UseSqlServer استفاده شده پکیج زیر به پروژه اضافه بشه.
microsoft.entityframeworkcore.sqlserver
نکته : در دستورات بالا متدی به نام GetConnectionString داریم که نام رشته اتصال یا کانکشن استرینگ را نیاز دارد. در اینجا فرض کرده ایم نام کانکشن استرینگ DefaultConnection می باشد. در مرحله بعدی به تنظیم کانکشن استرنیگ می پردازیم.
ایجاد کانکشن استرینگ در Asp.net Core
خب نوبت به تنظیم کانکشن استرینگ می باشد. در Asp.net Core کانکشن استرینگ را در فایل appsettings.json نگهداری می کنیم. این فایل را باز کنید و مطابق کدهای زیر کانکشن استرینگ را ایجاد کنید.
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=.; Initial Catalog = MyDataBaseName; user Id=sa; Password=***;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}
در کدهای بالا در بخش اول ConnectionString تعریف شده است. همانطور که مشاهده می کنید نام کانکشن استرینگ را DefaultConnection گذاشتیم.
ایجاد جدول در مدل داده ای در انتیتی فریم ورک Code First
بعد از اینکه کلاس DbContext ایجاد شد و تنظیمات مربوط به کانکشن استرینگ و کلاس Startup.cs انجام شد نیاز به ایجاد یک جدول داریم. بنابراین روی پوشه Models کلیک راست کنید و یک کلاس جدید به نام Customer ایجاد کنید. در واقع این کلاس همان جدول دیتابیسی ما می باشد و Property های این کلاس ستونهای جدول می باشد.
کلاس Customer
public class Customer
{
    [Key]
    public int CustomerID { get; set; }
    public string CustomerName { get; set; }
    public string CustomerAddress { get; set; }
}
خب در کلاس Customer سه پراپرتی داریم که همان ستونهای جدول Customer می باشد. حالا باید در کلاس ApplicationDbcontext این کلاس را به عنوان یک جدول معرفی کنیم. در ادامه توسط دستور زیر این کار را انجام می دهیم.
public DbSet<Customer> CustomerTbl { get; set; }
بنابراین کلاس ApplicationDbContext به این صورت تبدیل خواهد شد.
public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {
    }
    public DbSet<Customer> CustomerTbl { get; set; }
}
ایجاد مایگریشن و ساختن دیتابیس
خب بعد از انجام این مراحل نوبت به ایجاد مایگریشن می باشد. برای استفاده از Migration در ابتدا پکیج زیر را نصب کنید.
microsoft.entityframeworkcore.tools
حالا از منوی Tools --> Nuget Package Manager --> Package Manager Console را انتخاب کنید تا پنجره Package Manager Console باز بشه. در ابتدا باید یک Migration جدید ایجاد کنید. بنابراین دستور زیر را بنویسید:
PM> Add-Migartion migrationName
توسط دستور Add-Migration میتونید یک مایگریشن جدید ایجاد کنید که تمامی تغییرات مدل شما را در بر میگیرد. چون این اولین مایگریشن پروژه می باشد کل ساختار و همه جداول را شامل می شود. (دقت کنید به جای migrationName می توانید نام مایگریشن را قرار دهید)
حالا برای تبدیل مایگریشن به دیتابیس میتونید از دستور زیر استفاده کنید.
PM> Update-Database
بعد از زدن دکمه Enter در Sql Server دیتابیس خود را مشاهده خواهید کرد.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2
 
                         
                         
                        