ASP.Net Core Web API快速搭建后台服务搭载SQLServer+FreeSQL(一)

news2024/11/19 15:36:28

目录

一.建立WebAPI所需要的环境

1. IDE编辑器:VisualStudio2019+

 2.数据库安装:SqlServer

 3.下载SQL Server Management Studio (SSMS)

二.创建ASP.Net Core Web API工程

1.创建模板工程

2. 试运行案例接口

3.安装FreeSQL工具包 

 三.设计数据库 启动SQL Server Management Studio (SSMS)

 1.初次以Window身份登陆

 2.创建新的登陆名

 3.SQlServer身份登陆

 4.创建数据库

四.功能开发

1.初始化数据库连接

2.编写数据模型的类

3.编辑数据处理的Web接口

4.运行进行测试

 五.发布文件夹

1.双击Services打开发布界面​编辑

 2.添加发布配置文件


很多时候我们需要快速的建立一个小型的Web后台,对前端数据进行维护,用ASP.Net Core Web API能完美的满足我们轻后端的项目需求。

一.建立WebAPI所需要的环境

1. IDE编辑器:VisualStudio2019+

下载地址:  https://learn.microsoft.com/zh-cn/visualstudio/releases/2022/release-notes

 2.数据库安装:SqlServer

下载地址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads

 下载后傻瓜式安装

 3.下载SQL Server Management Studio (SSMS)

下载地址:https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16

二.创建ASP.Net Core Web API工程

1.创建模板工程

 

2. 试运行案例接口

工程创建之后能看到模板里面已经给到一个WeatherForecast的案例,这时候我们直接运行就能通过Swagger测试当前这个案例接口。

3.安装FreeSQL工具包 

 三.设计数据库 启动SQL Server Management Studio (SSMS)

 1.初次以Window身份登陆

 2.创建新的登陆名

因为我们后续肯定是通过代码输入数据库的账号密码才能正常访问,不然就不能远程访问只能本地访问,所以我们需要创建一个或者多个登陆用户

 3.SQlServer身份登陆

退出当前Window身份登陆后,使用刚才添加的Serve账号密码登陆。服务器名称用(local)或者.或者本机ip;身份验证选择SQLServer

 4.创建数据库

登陆成功后,右键数据库创建自己的数据库,然后在右键表创建新表,具体表设计规则根据自己项目的业务自定义设定。

四.功能开发

1.初始化数据库连接

public class FreesqlManager
{
    //替换对应的数据库名字和账号密码
   static string connectionStr = "server=127.0.0.1;database=MyWebAPI;uid=aaa;pwd=123";

    private static Lazy<IFreeSql> freeSQL = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
            .UseConnectionString(FreeSql.DataType.SqlServer, connectionStr)
            .UseAutoSyncStructure(true)
            .Build());
    public static IFreeSql HsjFreeSQL => freeSQL.Value;
}

2.编写数据模型的类

 public class Student
    {
        private int id;
        private string name;
        private int age;

        public Student(string name, int age)
        {
            this.name = name;
            this.age = age;
        }

        public string Name { get => name; set => name = value; }
        public int Age { get => age; set => age = value; }
        [Column(IsIdentity = true, IsPrimary = true)]
        public int Id { get => id; set => id = value; }
    }

3.编辑数据处理的Web接口

namespace MyWebAPI.Controllers
{
    [ApiController]
    [Route("[controller]/[action]")]
    public class StudentController : ControllerBase
    {
        [HttpPost]
        public void Insert(Student stu)
        {
            long id = FreesqlManager.HsjFreeSQL.Insert(stu).ExecuteAffrows();
        }

        [HttpPost]
        public void Delect(int s_id)
        {
            //DELETE FROM `Student` WHERE (`Id` = 1 OR `Id` = 2)
            //var t2 = FreesqlManager.HsjFreeSQL.Delete<Student>(new { id = s_id }).ExecuteAffrows();

            var t5 = FreesqlManager.HsjFreeSQL.Delete<Student>().Where(a => a.Id == s_id).ExecuteAffrows();
        }
        [HttpPost]
        public void Update(int age)
        {
            //FreesqlManager.HsjFreeSQL.Update<Student>(1).Set(a => a.Age, age).ExecuteAffrows();
            FreesqlManager.HsjFreeSQL.Update<Student>().Set(a => a.Age, age).Where(a => a.Id == 1).ExecuteAffrows();
            //WHERE (`Id` = 1)
        }
        [HttpGet]
        public IEnumerable<Student> Check(int upperAge)
        {
            List<Student> stus = FreesqlManager.HsjFreeSQL.Select<Student>().Where(a => a.Age > upperAge).ToList();
            foreach (var item in stus)
            {
                Console.WriteLine(item.Name);
            }
            return stus .ToArray();

        }
    }
}

4.运行进行测试

     

 五.发布文件夹

1.双击Services打开发布界面

 2.添加发布配置文件

选择发布文件夹,然后选择发布的路径,最后点击发布即可

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《养生大世界》简介及投稿要求

《养生大世界》简介及投稿要求 《养生大世界》是由国家新闻总署备案&#xff0c;中国老年保健协会主管的国家级学术期刊&#xff0c;全国公开发行正规刊物。 《养生大世界》传播健康中国文化理念&#xff0c;推动健康养生科技创新发展&#xff0c;助力健康产业惠及人民。 主…

蓝桥杯单片机竞赛主观题总结(全)(2.5W字)

前言 对于蓝桥杯的单片机竞赛&#xff0c;主观题很重要&#xff0c;占了百分之70-80的大头&#xff0c;因此主观题做得怎么样决定了比赛是否能拿奖&#xff0c;而客观题的正确率很大程度上决定了你能否获得省一&#xff0c;从而进入决赛。因此我在这里分享一期关于主观题中各个…

95道MongoDB面试题

1、mongodb是什么&#xff1f; MongoDB 是由 C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。 再高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。 MongoDB 旨在给 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数…

前端技术栈 - ES6 - Promise -模块化编程

文章目录 &#x1f55b;ES6⚡let变量⚡const常量⚡数组解构⚡对象解构⚡模板字符串⚡对象声明简写⚡对象方法简写⚡对象运算符扩展⚡箭头函数&#x1f98a;传统函数>箭头函数&#x1f98a;箭头函数对象解构 ⚡作业布置 &#x1f550;Promise⚡需求分析⚡传统ajax回调嵌套⚡p…

GO、KEGG(批量分组)分析及可视化

这篇帖子其实是更新、补充、解决一下问题的。我们号写过很多GO、KEGG富集分析的可视化&#xff0c;数不胜数&#xff0c;可以在公众号检索“富集”了解更多。我们演示的时候都是直接提供了富集的结果文件&#xff0c;一般演示为了图方便&#xff0c;也是利用在线工具cytoscape做…

网络工程师的副业,能有多野?

大家好&#xff0c;我是许公子。 在网工这行做了这么久&#xff0c;经常会有同事或者朋友来问我&#xff0c;有没有什么搞副业的路子。 别说&#xff0c;选择还真挺多。 前两天的文章里&#xff0c;这位朋友就秀了一波&#xff0c;这工作速度、便捷程度、收款金额&#xff0c…

Java并发编程-线程基础

哈喽,大家好,这篇文章主要讲解Java并发编程,线程基础的知识点,讲解知识点的同时也会穿插面试题的讲解. 主要讲解以下内容 进程,线程基础常见的一些区别比较如何使用和查看线程理解线程如何运行以及线程上下文切换的知识线程方法线程状态 希望能给大家带来帮助.加油~~~ 目录 进…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第十九章 口令破解与防御技术下)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、口令攻击的综合应用1、Windows NT, 2000口令攻击2、Windows XP, 2003口令攻击3、Unix系统口令攻击4、远程口令攻击 二、口令攻击的防御1、口令攻击防御概述2、保持口令的…

RS485转Profinet通讯

RS485转Profinet通讯 概述系统组成流量积算仪网关 软件总结 概述 一个支持RS485的流量积算仪的数据要被Profinet的PLC读取。制作一个网关&#xff0c;实现RS485到Profinet的转换。 系统组成 流量积算仪 支持RS485通讯&#xff0c;通讯协议是modbus RTU。采用功能码3可以读取…

非GUI模式下如何传参

非GUI模式下如何传参 Jmeter 有两种模式&#xff0c;GUI模式和非GUI模式&#xff0c;通常使用GUI模式编辑脚本&#xff0c;使用非GUI模式运行压测&#xff0c;官网上有强调&#xff0c;尽量使用非GUI模式&#xff0c;因为GUI模式下&#xff0c;jmeter UI组件本身在压测过程中会…

论文浅尝 | SimKGC:基于预训练语言模型的简单对比知识图谱补全

笔记整理&#xff1a;李雅新&#xff0c;天津大学硕士&#xff0c;研究方向为知识图谱补全 链接&#xff1a;https://dl.acm.org/doi/10.1145/3539597.3570483 动机 知识图谱补全 (KGC) 旨在对已知事实进行推理并推断缺失的链接。基于文本的方法从自然语言描述中学习实体表示&a…

Spring Boot 中的 @EnableConfigurationProperties 注解

Spring Boot 中的 EnableConfigurationProperties 注解 在 Spring Boot 中&#xff0c;EnableConfigurationProperties 注解是一个非常有用的注解&#xff0c;它可以用于启用对特定配置类的支持。在本文中&#xff0c;我们将深入探讨 EnableConfigurationProperties 注解&…

ST CubeMX 实现6对PWM同步输出/互补输出/三相PWM输出

频率为1KHz的6对PWM波形 原理:定时器1为主模式,定时器8为从模式,TIM1的定时器使能操作作为触发输出[TRGO]触发TIM8并使能TIM8的计数器,同时输出两路频率、占空比以及脉冲数量(小于256个,高级定时器重复计数功能为8位)可调PWM波形。 Tim1 参数配置 Tim8参数配置 未同步输出…

CC2530 GPIO口输出配置说明

第一章 原理图分析 CC2530核心板上带有两颗晶振:第一颗频率为32MHZ,第二颗频率为32.768KHZ CC250正常运行的时候,需要一个高频的时钟信号和一个低频的时钟信号。 高频时钟信号,主要供给CPU,保证程序的运行。 低频时钟信号,主要供给看门狗、睡眠定时器等片上外设。 按…

【强化学习】常用算法之一 “TRPO”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

StorageGRID——开放式的 S3 对象存储,可大规模管理非结构化数据

StorageGRID——开放式的 S3 对象存储&#xff0c;可大规模管理您的非结构化数据 专为混合多云体验打造的对象存储 StorageGRID 通过简化的平台为对象数据提供更强大的数据管理智能。由于 StorageGRID 利用 S3&#xff0c;因此可以轻松地连接混合云工作流&#xff0c;提供流畅…

C++ - 20230628

一. 思维导图 二. 练习 1) 总结类和结构体的区别 本身的访问级别不同struct是值类型&#xff0c;class是引用类型struct在栈&#xff0c;适合处理小型数据。class在堆区&#xff0c;适合处理大型逻辑和数据。 2) 定义一个矩形类&#xff08;Rectangle&#xff09;&#xff…

基于Java+SpringBoot+vue的高校学生党员发展管理系统设计与实现

博主介绍&#xff1a;✌擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案…

我是怎么把win11一步一步变成Mac的

目录 【三指拖动】 【空格预览】 【切换Ctrl和Alt】 【使用Linux命令】 【其它】 之前很长一段时间在MacBook上面开发习惯了&#xff0c;然后因为一些原因现在换到了windows上面&#xff0c;不管是使用上还是系统上都很不习惯&#xff0c;因此做了一些改造&#xff0c;…

LTD232次升级 | 社区新增PC版首页 • 名片新增卡片样式、可展示传真 • 导航数据可官微中心管理 • 个人中心可定制

1、社区支持PC版首页 2、名片小程序新增一种全局卡片样式、支持显示传真 3、官微中心新增导航管理 4、手机版商城个人中心支持版块配置 5、新增一组新闻轮播模块 01 用户社区应用 1) 新增PC版社区首页 在本次升级中&#xff0c;我们为用户社区应用新增了PC版的首页。 开…