.NET框架 - NET6+ API + EF(codefirst) + sqlite
.NET框架 - NET6+ API + EF(codefirst) + sqlite
安装 sqlite : https://www.cnblogs.com/1285026182YUAN/p/17566149.html
环境 sqlite3、.Net6
1. 创建项目:NETCORE.SQLITE.Utilize
2. 安装Nuget包
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Tools
Microsoft.AspNetCore.Mvc.NewtonsoftJson

3. Program.cs 中注入
//添加对象序列化程序为Newtonsoft.Json builder.Services.AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); }); builder.Services.AddDbContext<MyToDoContext>(options => { var connectionStr = builder.Configuration.GetConnectionString("ToDoConnection");//这个是我们在appsettings.json里面添加的数据库连接串 options.UseSqlite(connectionStr); });
4. 配置文件,appsettings.json
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "ToDoConnection": "Data Source=utilize.db" } }
5. 创建 DbContext
public class MyToDoContext : DbContext { public MyToDoContext(DbContextOptions<MyToDoContext> options) : base(options) {//继承DbContext建库方法 } public DbSet<ToDo> ToDo { get; set; } }
6. 创建实体类:
public class ToDo { [Key] public int Id { get; set; } public string Title { get; set; } public string Content { get; set; } public int Status { get; set; } }
7. 生成数据库
打开【工具、Nuget包管理器、程序包管理器控制台】,选择默认项目为当前项目
执行命令:
Add-Migration
Update-Database
会在项目中生成数据库文件

用 Navicat 可打开数据库文件

8. 接口测试
[Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { private readonly MyToDoContext DB; public ValuesController(MyToDoContext myToDoContext) { DB = myToDoContext; } [HttpGet] public async Task<IActionResult> Get() { var list = await DB.ToDo.ToListAsync(); return Ok(list); } [HttpPost] public async Task<IActionResult> Add() { var list = new List<ToDo>(); for (int i = 0; i < 5; i++) { var model = new ToDo() { Title = GetNameHelper.GetManName(), Content = GetNameHelper.GetWomanName(), Status = 1, }; list.Add(model); } await DB.ToDo.AddRangeAsync(list); var res = await DB.SaveChangesAsync(); return Ok(res); } }
参考:https://blog.csdn.net/qq_44695769/article/details/131116806

浙公网安备 33010602011771号