- Add a data model
- Scaffold the movie model
- Initial migration
- สร้างโปรเจ็กส์แบบ Web Application ชื่อโปรเจ็กส์ RazorPagesMovie
- Add a model to a Razor Pages app in ASP.NET Core
1.Add a data model
สร้างโฟลเดอร์ Models
สร้างคลาส Models\Movie.cs
Models\Movie.cs
using System; using System.ComponentModel.DataAnnotations; namespace RazorPagesMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } [DataType(DataType.Date)] public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } }
The ID
field is required by the database for the primary key.
2.Scaffold the movie model
สร้างโฟลเดอร์ Pages\Movies
คลิกขวาที่โฟลเดอร์ Pages\Movies > Add > New Scaffolded Item
The appsettings.json file is updated with the connection string used to connect to a local database.
ใต้โฟลเดอร์ Pages/Movies จะสร้างไฟล์ Create, Delete, Details, Edit, Index ขึ้นมา
และสร้างโฟลเดอร์และไฟล์ Data/RazorPagesMovieContext.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<RazorPagesMovieContext>(options => options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext"))); }
บรรทัดที่ 13-14 : เพิ่มส่วนติดต่อ SqlServer เข้ามา
appsettings.json
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "RazorPagesMovieContext": "Server=(localdb)\\mssqllocaldb;Database=RazorPagesMovieContext-1234;Trusted_Connection=True;MultipleActiveResultSets=true" } }
บรรทัดที่ 9 : กำหนดค่าให้กับ ApplicationDbContext
ตรงนี้อย่าลืมเปลี่ยนชื่อ Database ให้สั้นลงด้วย
Data/RazorPagesMovieContext.cs
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; namespace RazorPagesMovie.Models { public class RazorPagesMovieContext : DbContext { public RazorPagesMovieContext (DbContextOptions<RazorPagesMovieContext> options) : base(options) { } public DbSet<RazorPagesMovie.Models.Movie> Movie { get; set; } } }
บรรทัดที่ 16 : Movie
3.Initial migration
ใช้ Package Manager Console (PMC)
หรือ PowerShell
โดยทำ 2 ขั้นตอนคือ
- Add an initial migration.
- 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 ขึ้นใหม่ ใช้คำสั่ง
PowerShell
> dotnet ef database drop > dotnet ef database update
Link
- docs.microsoft.com- Add a model to a Razor Pages app in ASP.NET Core