เพิ่มโมเดล Movie ให้กับโปรเจ็กส์ WebApp (Visual Studio 2017)

สร้างโปรเจ็กส์แบบ WebApp (ด้วย Visual Studio 2017)

Add a model to a Razor Pages app in ASP.NET Core

สร้างโฟลเดอร์ Data
สร้างโฟลเดอร์ Data\Models
สร้างคลาส Data\Models\Movie.cs

Data\Models\Movie.cs

using System;

namespace WebApp.Data.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
}

สร้างโฟลเดอร์ Pages\Movies
คลิกขวาที่โฟลเดอร์ Pages\Movies | Add | New Scaffolded Item

ใต้โฟลเดอร์ Pages/Movies จะสร้างไฟล์ Create, Delete, Details, Edit, Index ขึ้นมา
และใต้โฟลเดอร์ Data จะสร้างไฟล์ ApplicationDbContext.cs

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });


    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("ApplicationDbContext")));
}

บรรทัดที่ 13-14 : เพิ่มส่วนติดต่อ SqlServer เข้ามา

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "ApplicationDbContext": "Server=(localdb)\\mssqllocaldb;Database=ApplicationDbContext;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

บรรทัดที่ 9 : กำหนดค่าให้กับ ApplicationDbContext ตรงนี้อย่าลืมเปลี่ยนชื่อ Database ให้สั้นลงด้วย

Data/ApplicationDbContext.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using WebApp.Data.Models;

namespace WebApp.Models
{
    public class ApplicationDbContext : DbContext
    {
        public ApplicationDbContext (DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }

        public DbSet<WebApp.Data.Models.Movie> Movie { get; set; }
    }
}

บรรทัดที่ 17 : Movie

Perform initial migration

ใช้ Package Manager Console (PMC)
หรือ PowerShell

โดยทำ 2 ขั้นตอนคือ

  1. Add an initial migration.
  2. Update the database with the initial migration.

PMC

PM> Add-Migration Initial
PM> Update-Database

PowerShell

> dotnet ef migrations add Initial
> dotnet ef database update

รัน F5

แล้วเรียกไปที่ http://localhost:52016/Movies/Create

ลองใส่ข้อมูลลงไป แล้วกดปุ่ม Create

จะมาหน้าแสดงรายการ จะเห็นรายการที่พึ่งใส่เข้าไป

ลองกด Detail จะเห็นตามนี้

ถ้าจะลบ Database หรือสร้าง Database ขึ้นใหม่ ใช้คำสั่ง

> dotnet ef database drop
> dotnet ef database update

Link