NET Core 6.0 webapi 简单使用+连接数据库

文章目录

  • 环境
  • 创建WebApi并防止Api冲突
  • Swagger添加注释
  • 连接sqlite数据库
    • Nuget包
    • 代码

环境

在这里插入图片描述

  • ASP.NET core
  • NET core 6.0

创建WebApi并防止Api冲突

NET Core 6.0 webapi 简单使用+连接数据库_第1张图片
NET Core 6.0 webapi 简单使用+连接数据库_第2张图片

NET Core 6.0 webapi 简单使用+连接数据库_第3张图片
NET Core 6.0 webapi 简单使用+连接数据库_第4张图片

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace WebApi1.Controllers
{
    //[Route("api/[controller]")]默认路径,网络请求路径为api/controller文件名,如果有多个方法则会冲突
    [Route("api/[controller]/[action]")]//网络请求改为api/controller文件名/函数方法名。避免重名
    [ApiController]
    public class ValuesController : ControllerBase
    {
        /// 
        /// 简单的网络请求测试
        /// 
        /// 
        [HttpGet]
        public string WebApiTest()
        {
            return "Hello World!";
        }
        /// 
        /// 多方法名测试
        /// 
        /// 
        [HttpGet]
        public string WebApiTest2()
        {
            return "Hello World!";
        }
    }
}




NET Core 6.0 webapi 简单使用+连接数据库_第5张图片
如何使用

NET Core 6.0 webapi 简单使用+连接数据库_第6张图片

Swagger添加注释

在 Program.cs里面

NET Core 6.0 webapi 简单使用+连接数据库_第7张图片

.......其他代码
builder.Services.AddSwaggerGen(option =>
    {
        var file = Path.Combine(AppContext.BaseDirectory, "你的项目名称.xml");//修改为你对应的项目名称才行
        //true:显示控制器层注释
        option.IncludeXmlComments(file, true);
        //对action的名称进行排序,如果有多个,就可以看见效果了
        option.OrderActionsBy(o => o.RelativePath);
    }
); 

var app = builder.Build();
.......其他代码

NET Core 6.0 webapi 简单使用+连接数据库_第8张图片
添加对应注释

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace WebApi1.Controllers
{
    //[Route("api/[controller]")]默认路径,网络请求路径为api/controller文件名,如果有多个方法则会冲突
    [Route("api/[controller]/[action]")]//网络请求改为api/controller文件名/函数方法名。避免重名
    [ApiController]
    public class ValuesController : ControllerBase
    {
        /// 
        /// 简单的网络请求测试
        /// 
        /// 
        [HttpGet]
        public string WebApiTest()
        {
            return "Hello World!";
        }
        /// 
        /// 多方法名测试
        /// 
        /// 字符串1
        /// 字符串2
        /// 
        [HttpGet]
        public string WebApiTest2(string str1,string str2)
        {
            return "Hello World!";
        }
    }
}

效果:
NET Core 6.0 webapi 简单使用+连接数据库_第9张图片

连接sqlite数据库

Nuget包

NET Core 6.0 webapi 简单使用+连接数据库_第10张图片

  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • Newtonsoft.Json:用于Json格式转换

代码

NET Core 6.0 webapi 简单使用+连接数据库_第11张图片

using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;

namespace WebApi1.DB
{
    public class ORMContext:DbContext
    {
        public DbSet<Student> Students { get; set; }

        public ORMContext()
        {
            this.Database.EnsureCreated();//如果没有数据库,则自动创建数据库和对应数据表
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //数据库连接字符串
            optionsBuilder.UseSqlite("Data Source=ORM_Sqlite.db");//你的数据库名称
        }

    }
    public class Student
    {

        [Key]//主键
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]//自动递增
        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Sex { get; set; }
    }
}

添加测试Api

Tips:这里用到ORM查询语法

EntityFramework EF 常用增删改查语句

  /// 

        /// 
        /// Sqlite测试
        /// 
        /// 
        [HttpGet]

        public List<Student> SqlTest()
        {
            for(var i = 0; i < 5; i++)
            {
                _context.Students.Add(new Student()//插入数据库,但是只在缓存中,并没有真正更新
                {
                    Age = i,
                    Name = "Lily" + i,
                    Sex = "女"
                });
               
            }
           _context.SaveChanges();//和缓存同步,更新数据库

            var res = _context.Students.ToList();//返回所有数据

            return res;

        }

运行结果

NET Core 6.0 webapi 简单使用+连接数据库_第12张图片

你可能感兴趣的:(webApi,.net,core)