.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
分类:
NET方向 / .NET技术
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战