ASP.NET Core WebApi 项目搭建

ASP.NET Core WebApi 项目搭建

  • 工具版本
    Visual Studio 2019
    .Net Core 3.1
    SqlServer 2008
  • 连接数据库
    EF Core
打开vs2019创建.NET Core WebApi 项目

选择ASP.NET Core Web应用程序
ASP.NET Core WebApi 项目搭建_第1张图片
项目名称和路径
ASP.NET Core WebApi 项目搭建_第2张图片
项目类型选择 API
ASP.NET Core 版本选择 3.1
点击创建,等待项目创建
ASP.NET Core WebApi 项目搭建_第3张图片

项目创建完成,删除自带的控制器和类

ASP.NET Core WebApi 项目搭建_第4张图片

配置连接字符串

删除原本的代码,配置新的

{
   
  "ConnectionStrings": {
   
    "Conn": "Server=.;Database=TEST;Uid=sa;Pwd=123456;"
  }
}

ASP.NET Core WebApi 项目搭建_第5张图片

创建实体类

创建 Entity 文件夹,创建 App_Admin.cs 实体类

using System;

namespace AppManager.Api.Entity
{
   
    public class App_Admin
    {
   
		public int Id {
    get; set; }
		public string UserName {
    get; set; }
		public string Password {
    get; set; }
		public DateTime CreateTime {
    get; set; }
		public string Admin {
    get; set; }
		public short Status {
    get; set; }
		public string Avatar {
    get; set; }
		public string City {
    get; set; }
	}
}

ASP.NET Core WebApi 项目搭建_第6张图片

安装NuGet包

右键依赖性 > 管理 NuGet 程序包
ASP.NET Core WebApi 项目搭建_第7张图片
安装两个包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
ASP.NET Core WebApi 项目搭建_第8张图片
ASP.NET Core WebApi 项目搭建_第9张图片

创建EF连接数据库上下文类

创建类:AppDbContext 继承:DbContext

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

namespace AppManager.Api.Entity
{
   
    /// 
    /// EF连接数据库上下文类
    /// 
    public class AppDbContext:DbContext
    {
   
        public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        {
   

        }
        public DbSet<App_Admin> App_Admin {
    get; set; }
    }
}

ASP.NET Core WebApi 项目搭建_第10张图片

注入数据库
//注入数据库
services.AddDbContext<AppDbContext>(options =>
    //指定sqlserver数据库(读取连接字符串)
    options.UseSqlServer(Configuration.GetConnectionString("Conn"))
);

ASP.NET Core WebApi 项目搭建_第11张图片

跨域配置
  1. 注入跨域
//注入跨域
            services.AddCors(options =>
            {
   
                options.AddPolicy("CorePolicy",
                    //允许任何方法
                    builder => builder.AllowAnyMethod()
                    //允许任何的源
                    .SetIsOriginAllowed(_ => true)
                    //运行任何的请求头
                    .AllowAnyHeader()
                    .AllowCredentials());
            });

ASP.NET Core WebApi 项目搭建_第12张图片

  1. 跨域中间件
//跨域中间件
            app.UseCors("CorePolicy");

ASP.NET Core WebApi 项目搭建_第13张图片

注入缓存
//注入缓存
            services.AddMemoryCache();

ASP.NET Core WebApi 项目搭建_第14张图片

httpContext配置
  1. 注入httpContext
//注入httpContext
services.AddHttpContextAccessor();
//设置 httpContext 生命周期
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();

ASP.NET Core WebApi 项目搭建_第15张图片

  1. 创建文件夹 Extensions,创建上下文对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace AppManager.Api.Extensions
{
   
    /// 
    /// 上下文用户对象
    /// 
    public class AuthContextUser
    {
   
        public int Id {
    get; set; }
        public string UserName {
    get; set; }
        public string Avator {
    get; set; }
        public int Status {
    get; set; }
    }
}

ASP.NET Core WebApi 项目搭建_第16张图片

  1. 创建AuthContextService
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;

namespace AppManager.Api.Extensions
{
   
    public static class AuthContextService
    {
   
        private static IHttpContextAccessor _context;

        public static void Configuration(IHttpContextAccessor httpContextAccessor)
        {
   
            _context = httpContextAccessor;
        }

        //上下文
        public static HttpContext Current => _context.HttpContext;

        public static AuthContextUser CurrentUser
        {
   
            get
            

你可能感兴趣的:(ASP.NET,Core,Web,应用程序,asp.net,数据库,后端)