VS2022 webapi SQLite EFcore 最简单部署

news/2024/4/25 23:19:57/文章来源:https://blog.csdn.net/ot512csdn/article/details/129683185

一、我有一个sqlite单文件数据库,里面有一张表material,我想把这张表的数据,让c# webapi程序从服务器上输出成json,让客户端可以查询到数据。

二、使用VS2022,安装ASP.net相关开发组件。

三、VS2022中新建一个项目,项目的类型是webapi,用的是ASP.NET Core技术。

产生项目的时候,我们选择一个最小的mini项目,连控制层也不要了。

项目自动创建完成后,文件非常干净:

四、我们要使用微软提供的数据库ORM工具EntityFramework,它可以把数据库映射成程序对象,我们写程序时直接拿来使用就好。EntityFramework有2种,一个是EntityFramework6.4,使用在WINDOWS的平台,它提供ADO实体类的可视化设计器,可以在图像界面很方便的产生程序对象;第二个是EntityFrameworkCore7,它是微软向跨平台开发扩展的ORM工具,但它没有可视化的设计器,还好微软提供了一个tool工具类,我们可以用一条命令把映射的数据库对象直接生成。

博主发现用第一种配置SQLite产生映射对象很难,而第二种方式只需要几分钟。那么,我们就在项目中添加EntityFrameworkCore和工具类来连接上SQLite数据库。在NuGet中安装好就行。

Microsoft.EntityFrameworkCore.Sqlite,Microsoft.EntityFrameworkCore.Tools

然后,我们用一条命令,让EFcore从sqlite数据库给我生成数据库的映射对象出来。

Scaffold-DbContext "Data Source=D:\webapi\car.db" Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models -UseDatabaseNames -DataAnnotations -Force

它把全部的数据库表映射成了对象,统统都给我弄到了项目Models目录中。

这里是tool工具类的这条命令的详细说明:

在 工具-NuGet包管理器-程序包管理控制台 输入

Install-Package Microsoft.EntityFrameworkCore.Tools //安装管理工具

PM> Scaffold-DbContext "Data Source=F:\XQX\个人项目\C#学习\SQLiteStudio.db" Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models -UseDatabaseNames -DataAnnotations -Force

-OutputDir *** 实体文件所存放的文件目录

-ContextDir *** DbContext文件存放的目录

-Context *** DbContext文件名

-Schemas *** 需要生成实体数据的数据表所在的模式

-Tables *** 需要生成实体数据的数据表的集合

-DataAnnotations

-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)

-Force 强制执行,重写已经存在的实体文件

五、我们改了一点原程序,把我们的material表返回给api加上。

执行一下,API运行正常。返回了material表的数据。

六、我们把这个程序功能,做成单独的执行程序来运行,首先弄一下发布功能。

到发布的目录看看,VS2022在目录中产生了好多类库文件,我们可以选择发布成单个的文件,这样简单了好多:

七、执行程序,提示有端口可以访问了。

打开浏览器,访问这个API的地址,我们得到了SQLite数据库material表中的json数据。这样我们为前后端彻底分离做好了准备。

最后,这个程序想要换一下端口,可以用这行代码:

builder.WebHost.UseUrls(new[] { "http://*:8090", "https://*:8091" });

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMvare-linux没有图形化界面

镜像: linux centos7.5 软件:vmware 安装过程:基本一路默认 问题:安装成功后,只有命令行,没有图形界面 解决办法如下: 1、检测yum是否可以使用 yum list | tail2、开始安装 yum groupins…

前端git必备技能,如何合并分支以及出现合并冲突后如何解决

文章目录一、合并分支二、可能出现的冲突和解决三、过程分享一、合并分支 注意,我们常说的master或main主干也可以理解为分支,可以是分支合并到主干,或分支合并到分支。 需求:cloudweb的2.6.0和2.6.1是并行开发的,现…

【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件

在 这篇文章 中学习了使用 PetaLinux 定制 Linux 的方法,制作了 SD 卡启动文件,本期介绍如何使用 PetaLinux 配置生成从 QSPI Flash 启动的 Linux 镜像文件。 复制 Petalinux 工程 如果我们想保留 SD 卡启动的 Petalinux 工程,但是又不想新…

晶晨S905D3切换到外部phy方法

文章目录 前言一、s905d3的以太网驱动的理解二、修改设备树注意前言 随着芯片的国产化推荐,越来越多的国产芯片被大家重视起来,但是国产的一些稍微高性能的芯片资料太少,这里把调实phy的流程记录一下,不做太多的理论分析 一、s905d3的以太网驱动的理解 如果拿到sdk后,默…

2023年湖北武汉市中高级职称评审要满足哪些硬性要求?启程别

2023年湖北武汉市中高级职称评审要满足哪些硬性要求?启程别 职称评审是指已经经过初次职称认定的专业技术人员,在经过一定工作年限后,在任职期内完成相应的继续教育学时,申报中级职称以上的人员须在专业期刊发表论文并且经过一些基…

存储管理 - 磁盘结构及调度算法

一.简介柱面:一个磁盘所有的盘面上同一个半径相同的磁道的圆形轨迹从上倒下依次组成一个圆柱体,就称作柱面,每个圆柱上的磁头由上而下从“0”开始编号。扇区:硬盘的读写以扇区为基本单位,而操作系统则以块为最小单位(扇…

图像基本变换

缩放与裁剪裁剪图像的裁剪,是指将图像的某个区域切割出来。一些常见的应用场景包括:* 感兴趣区域提取* 去除无用信息* 图像增强* 纠偏:去除不规则部分,将图像变得更加整齐事实上,图像裁剪的裁剪通常就是一个numpy矩阵切…

湖科大嵌入式实验课配套的stem32开发板使用说明

前言 本文档为湖科大嵌入式实验课配套的stem32开发板使用说明 这门课叫嵌入式系统及应用 大三下开课 板子长这样 感谢 lcw 的指导,让我少走弯路 安装 打开百度网盘链接 下载并安装keil 5 (MDK535.EXE) mdk518.exe应该也可以用,而且这个也可以汉化…

2022年18个值得期待的Learndash LMS插件列表

有数百个独特的LearnDash附加组件,您可能很难选择您的LearnDash LMS所需的。您可以集成 LearnDash 以扩展或限制功能,但您喜欢它。但真正的问题是如何为您的网站选择合适的插件?为了帮助简化此过程,我们精选了18个最值得期待的Lea…

git 分支创建、切换和合并

1.理解分支为了便于理解,大家可以粗略的将分支认为就是一个代码的副本。如果我们同时在一个代码上开发多个功能。还要修改一些bug,团队成员协作过程中,必然会出现相互影响。假如某个同事提交了一个错误的代码,可能会导致其他更新了…

设计循环队列(LeetCode)题目

这个也是力扣的题目,所以我们还是直接看 请自己看题目 下面就看思路吧,首先是循环队列,我们想一下循环队列如何设计,用什么设计比较好一点,用顺序表还是链表 这里用链表看起来比较简单,因为他是循环的&am…

干货|小白1分钟搞懂SRM管理系统

SRM管理系统是用来管理供应商,以及采购方和供应商进行采购交易的一套管理系统,在很多生产类企业中,往往是需要和ERP管理系统集成使用。原因:1.ERP管理系统无法实现采购商与供货商的有效协作;2.SRM管理系统对供应商的管…

Java分布式事务(七)

文章目录🔥Seata提供XA模式实现分布式事务_业务说明🔥Seata提供XA模式实现分布式事务_下载启动Seata服务🔥Seata提供XA模式实现分布式事务_搭建聚合父工程构建🔥Seata提供XA模式实现分布式事务_转账功能实现上🔥Seata提…

考研复试7 汇编语言、编程语言

一、寄存器 1. 寄存器概述 (1)典型的CPU包括器件 运算器控制器总线:内部总线实现CPU内部各个器件之间的联系;外部总线实现CPU和主板上其它器件的联系。 (2)8086CPU有14个寄存器,它们的名称为…

git查漏补缺之 stash

git查漏补缺之 stash Start 最近在工作的过程中,遇到 git 中的stash 暂存这个命令,感觉非常有用,写一个博客记录一下。 1. stash 首先第一个就是 stash ,英译过来的意思就是 存放/贮藏。 主要的使用场景: 我正在…

最好用的Markdown编辑器:MWeb Pro mac

MWeb pro Mac中文版是一款非常好用的Markdown编辑器和博客生成工具,支持语法高亮,预览,Fenced code blocks和代码高亮,Math ML支持,具有导出HTML/PDF,自定编辑器主题,字数统计,大纲视…

Linux--MySQL数据库的基本概念、编译安装以及MySQL数据库自动补全功能的实现

文章目录一.数据库的基本概念1、数据(Data)2、表3、数据库4、数据库管理系统(DBMS)5、数据库系统6、访问数据库的流程二.数据库系统发展史1、第一代数据库2、第二代数据库3、第三代数据库三、当今主流数据库介绍1、SQL Server (微…

电商出海:阿里、拼多多“快马扬鞭”

配图来自Canva可画 经过多年的发展,电商已经逐渐深入人们的日常生活中了,人们也愈发习惯使用电商平台了。得益于消费者需求的持续增长,电商行业的体量规模也在持续扩大,行业内也涌现出了诸多电商平台,比如淘宝、京东、…

error: C1083: 无法打开包括文件: “QtGui/QApplication”: No such file or directory

Qt系列文章目录 文章目录Qt系列文章目录前言一、原因二、解决办法1.修改pro工程文件2.在main.cpp中三、总结前言 当我们从网上或者从打开别人的工程师,报错,C1083: 无法打开包括文件: “QtGui/QApplication”。 原因:Qt5里不再用QtGui模块&a…

docker 安装 nginx无坑版

一. 拉取镜像 docker pull nginx二. 创建挂载目录 mkdir -p /usr/local/nginx/conf mkdir -p /usr/local/nginx/log mkdir -p /usr/local/nginx/html三. 从nginx容器里复制nginx的配置文件到主机里 创建个容器 docker run --name nginx -p 80:80 -d nginx将容器内的配置文件…