.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

 

posted @   无心々菜  阅读(274)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示