目的
透過EFCore對db做查詢,為了降低門檻採用SQLite當範例資料庫。
建立新專案
選擇ASP.NET Core Web API專案範本,並執行下一步
設定新的專案
命名你的專案名稱,並選擇專案要存放的位置。
其他資訊
直接進行下一步
NuGet加入套件
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.Design
新增Student.cs類別檔
新增Models資料夾,並在裡面新增Student.cs類別檔
編輯Student.cs類別檔
public class Student {
public int Id { get; set; }
public string Name { get; set; } = "BillHuang";
public int Age { get; set; }
}
新增EFCoreContext.cs類別檔
新增DBContext資料夾,並在裡面新增EFCoreContext.cs類別檔
編輯EFCoreContext.cs類別檔
//別忘了using
using Microsoft.EntityFrameworkCore;
using EFCoreExample.Models;
namespace EFCoreExample.DBContext {
//繼承DbContext
public class EFCoreContext : DbContext {
//複寫OnConfiguring
protected override void OnConfiguring(DbContextOptionsBuilder options) {
//指定連線字串,連到SQLite
options.UseSqlite("Data Source=Student.sqlite");
}
//設定student資料表
public DbSet<Student> Students { get; set; }
}
}
編輯Program.cs檔
//別忘了using
using EFCoreExample.DBContext;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
//註冊EFCoreContext
builder.Services.AddDbContext<EFCoreContext>();
//下面省略
到套件管理器主控台下Terminal指令
檢視>其他視窗>套件管理器主控台
下方會出現命令列
輸入dir
會顯示目錄檔案及子目錄清單
輸入cd EFCoreExample
移動到專案檔底下後再輸入dir
確認是否到正確路徑
輸入dotnet tool install --global dotnet-ef
在全域安裝EFCore CLI工具(如果已經安裝,會出現下圖訊息,即可忽略此步驟)
輸入dotnet ef migrations add CreateInitial
初始化SQLite
輸入dotnet ef database update
更新SQLite資料表
成功就會自動產生Migrations資料夾
編輯WeatherForecastController.cs類別檔
將EFCoreContext注入WeatherForecastController.cs
- 將預設的API註解
- 寫新的對外API
//
[HttpGet("InsertAsync")]
public async Task<IActionResult> InsertAsync() {
//新增一筆資料
var data = new Student() { Name = "BillHuang", Age = 20 };
//加到Students這張table內
_context.Students.Add(data);
//執行,並回傳成功數量
return Ok(await _context.SaveChangesAsync());
}
執行結果
F5執行後,依照下列步驟操作,並確認結果