asp.net core创建web api 并且连接sqlite 使用代码直接创建数据库 code first

环境visual studio 2017免费版,.net core 2.2

1.创建asp.net core web api 项目

.net core 选择当前最新版本,项目选择API类型,不进行身份验证,点击确定。

此时一个web api项目就创建好了。

直接运行,先看效果。

博主在其他电脑上都可以正常运行,但是就在写blog的这台电脑上报错了,提示

在Program.cs文件中找不到webhost

解决的办法就是重新安装一下.net core 2.2,点击repair

扫描二维码关注公众号,回复: 4519186 查看本文章

重启电脑后,终于可以运行了 浏览器中显示


2.创建sqlite数据库

1.在NuGet中安装

2.创建一个数据库模型的类

新建一个Models的文件夹,在这个文件夹下创建一个Model.cs的类

3.修改这个类

Model.cs

using Microsoft.EntityFrameworkCore; //DbContext
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication3.Models
{
    public class Model:DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
                optionsBuilder.UseSqlite("Data source=d:/mydb.db");    //创建文件夹的位置        
        }

        public DbSet<Database> Databases { get; set; }
    }

    public class Database
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

4.修改Startup.cs

public void ConfigureServices(IServiceCollection services)
        {
            
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            using (var database = new Model())    //新增
            {
                database.Database.EnsureCreated(); //如果没有创建数据库会自动创建,最为关键的一句代码
            }
        }

只要在ConfigureServices方法中添加4行代码就可以了,记得要添加一名Model的命名空间哦

5.再次运行

网页上的效果还是一样

但是d盘下面自动创建了mydb.db

Databases的结构和我们创建的Database类一样。


3.操作数据库

修改Controllers文件夹下面的ValuesControllers.cs

 // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            var database = new Model();
            database.Databases.Add(new Database { Name = "张三" });
            database.SaveChanges();
            return new string[] { "value1", "value2" };
        }

只修改[httpget]下面。

添加三行代码,在执行。

在浏览器中出现   ["value1","value2"]后查看数据库

已成功添加。

说明已经可以操作数据库了。

至于数据详细的增删改查会在以后的博文中写。

猜你喜欢

转载自blog.csdn.net/qq_34759481/article/details/85013025