ASP.Net Core的Code Fist程式碼先行操作方法
阿新 • • 發佈:2019-02-04
Asp.Net core的Code Fist(程式碼先行)主要有以下幾步:
1.建立實體類
2.建立資料庫上下文
3.填加連線字串
4.依賴注入
5.新增基架工具並執行初始遷移
6搭建模型的基本架構(更具模型生成網頁Page)
首先需要在創建出實體類,此處以微軟官方文件中的Movice實體類為例。
右鍵單擊“Models”資料夾。 選擇“新增” > “類”。 將類命名為“Movie”,並新增以下屬性:
using System; namespace RazorPagesMovie.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; } } }
同時填加資料庫上下文
向“Models”資料夾新增名為 MovieContext.cs 的 DbContext 派生類。
using Microsoft.EntityFrameworkCore; namespace RazorPagesMovie.Models { public class MovieContext : DbContext { public MovieContext(DbContextOptions<MovieContext> options) : base(options) { } public DbSet<Movie> Movie { get; set; } } }
填加連線字串
將連線字串新增到 appsettings.json 檔案。
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"MovieContext": "Data Source=127.0.0.1;Initial Catalog=Movice;User Id=sa;Password=123456;"
}
}
註冊資料庫上下文
使用 Startup.cs 檔案中的依存關係注入容器註冊資料庫上下文。
public void ConfigureServices(IServiceCollection services)
{
// requires
// using RazorPagesMovie.Models;
// using Microsoft.EntityFrameworkCore;
services.AddDbContext<MovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));
services.AddMvc();
}
此時生成專案如果沒有任何錯誤就可以進行命令列操作了。
新增基架工具並執行初始遷移
從“工具”選單中,選擇“NuGet 包管理器” > “包管理器控制檯”。
在PowerShell中分別輸入以下命令
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.0
Add-Migration Initial
Update-Database
Install-Package 命令安裝執行基架引擎所需的工具。
Add-Migration 命令生成用於建立初始資料庫架構的程式碼。 此架構以(Models/MovieContext.cs 檔案中的)DbContext 中指定的模型為基礎。 Initial 引數用於為遷移命名。 可以使用任意名稱,但是按照慣例應選擇描述遷移的名稱。
Update-Database用於將以上操作儲存到資料庫中(生成資料庫)
搭建“電影”模型的基架
開啟專案目錄(包含 Program.cs、Startup.cs 和 .csproj 檔案的目錄)中的命令視窗。
執行下面的命令:
dotnet aspnet-codegenerator razorpage -m Movie -dc MovieContext -udl -outDir Pages\Movies --referenceScriptLibraries
下表詳細說明了 ASP.NET Core 程式碼生成器的引數:
測試應用
執行應用並將 /Movies 追加到瀏覽器中的 URL (http://localhost:port/movies)。
此時就可以開啟網頁了。