ASP.Net Core Web Api+EFCore+MySql实现动态查询(保姆教学)

这篇具有很好参考价值的文章主要介绍了ASP.Net Core Web Api+EFCore+MySql实现动态查询(保姆教学)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文会详细讲解如何从打开文件到第一个API开发完成,过程十分详细,是基于学习入门。

现在让我们开始吧!

打开VS(演示用的Visual Studio2022)

第一步我们选择创建新项目 efcore 动态查询,c#,web api,c#,oneapi

 第二步 选择开发语言以及应用程序 我们选择C# -所有平台-Web API.找到 ASP.NET Core Web API 应用

efcore 动态查询,c#,web api,c#,oneapi

 efcore 动态查询,c#,web api,c#,oneapi

这里应用名字可以随便起,根据你的业务或者便于你记住,随你所想,你只需要点击下一步

efcore 动态查询,c#,web api,c#,oneapi

这里的 “ 配置HTTPS(H) ”先暂时不要勾选

 然后点击创建,你的第一个Web API 项目就创建成功了!

efcore 动态查询,c#,web api,c#,oneapi

现在你可以尝试着运行一下,因为现版本中默认写好一个接口并且带Swagger样式使其更美观易

用,

efcore 动态查询,c#,web api,c#,oneapi

不要高兴的太早,我们只是创建了一个Web API项目,接下来,我们就写一些功能使它更像一

个应用程序吧!但是在那之前,我们还要做一些事情,确保我们写的功能能够实现。

首先我们需要为我们的项目引入四个Net包,

①Microsoft.EntityFrameworkCore
②Microsoft.EntityFrameworkCore.Design
③Microsoft.EntityFrameworkCore.Tools
④Pomelo.EntityFrameworkCore.MySql

在解决方案里找到你刚刚创建的项目 " WebAPIDemo2 " 右击你的鼠标 找到 “ 管理NuGet程序包 ”

efcore 动态查询,c#,web api,c#,oneapi

 然后你能看到 这里 只有 一个包,这是你创建项目默认带的Swgger包

efcore 动态查询,c#,web api,c#,oneapi

你仅仅只要点击 " 浏览 " 来安装我们需要的四个包,

efcore 动态查询,c#,web api,c#,oneapi

值得注意的是,在我们引入包的过程中,要注意每个包的版本是要一致的,比如我们引入的是最新版7.0.5版本,那么其他包也要安装最新版。 

 如果你能完全按照我说的做,那么你看到的应该和下面这个一样

efcore 动态查询,c#,web api,c#,oneapi

 走到这一步我们就已准备好我们需要的东西了。

接下来,我们需要建立我们的数据库了,我用的正是如题目所提的MySQL,用的NaVicat管理工具

(我就默认你已经安装NaVicat和MySQL了),

然后,你需要在NaVicat上连接上你的MySQL

efcore 动态查询,c#,web api,c#,oneapi

 efcore 动态查询,c#,web api,c#,oneapi

 上图中的连接名是由你决定,这意味着你可以自己输入,最好不要用中文。

记住你的主机名,用户名和密码,在接下来的步骤中你将会用到。

efcore 动态查询,c#,web api,c#,oneapi 在这一步中,我们创建了一个student数据库和一张stuinfos表。

现在,我们项目也创建成功了,数据库也有准备好了,在我们把它们连接起来之前。我们需要创建

个新的文件夹。efcore 动态查询,c#,web api,c#,oneapi

 你可以将它命名为 Models 用来映射数据库的表和联系上下文。

efcore 动态查询,c#,web api,c#,oneapi

我们接下来要做到就是把student数据库里的表stuinfos映射到我们的WebApI项目中,这个时候我

们的引入的包①Microsoft.EntityFrameworkCore 就起作用了,①Microsoft.EntityFrameworkCore

为了方便我们就叫他EF Core。如果你想学习过基于Net Framework的Mvc你肯定对 EntityFramework 不陌生,但是在net core 里的 EntityFramework叫EntityFrameworkCore,它不能

像 EntityFramework 里的有图形化配置,用鼠标选择下拉框就能完成映射,在Net core中,我们使

用 EntityFrameworkCore 就需要通过控制台输入指令进行映射。不用担心麻烦,我们只需要一行指令就能完成映射。

dotnet ef dbcontext scaffold "server=主机名;uid=用户名;pwd=密码;database=数据库名字" Pomelo.EntityFrameworkCore.MySql -o Models -f

就是这一段代码,接下来这张图将会教你怎么使用它。

efcore 动态查询,c#,web api,c#,oneapi

 efcore 动态查询,c#,web api,c#,oneapi

efcore 动态查询,c#,web api,c#,oneapi

 efcore 动态查询,c#,web api,c#,oneapi

如果出现这个错误,请检查你的路径,确认一下Models文件在哪个目录下

efcore 动态查询,c#,web api,c#,oneapi

项目是这个路径D:\VSproject\WebApiDemo2> 是错误的

我们使用 "cd WebApiDemo2"切换到正确路径,再次尝试

 efcore 动态查询,c#,web api,c#,oneapi

这样,我们就将MySQL里的表成功映射到项目中了 ,遗憾的是,我们现在还不能用这写数据,我还需要做些事情,第一步,将这段代码放到 “ appsettings.json ” 里。

  //配置数据库字符串
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;database=数据库名;user=用户名;password=密码"
  },

efcore 动态查询,c#,web api,c#,oneapi

第二步

#region 配置数据库

// Add services to the container.
var config = new ConfigurationBuilder()
           .AddInMemoryCollection() //将配置文件的数据加载到内存中
           .SetBasePath(Directory.GetCurrentDirectory()) //指定配置文件所在的目录
           .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) //指定加载的配置文件  --划重点..记得始终复制
           .Build(); //编译成对象  

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddDbContextPool<联系上下文>(optionsBuilder => optionsBuilder.UseMySql(config.GetConnectionString("ConnectionString"), new MySqlServerVersion(new Version(8, 0, 33)), mySqlOptions =>
{
    mySqlOptions.MigrationsAssembly("项目名");
}
), poolSize: 5);

#endregion

将这些代码粘贴进 “ Program.cs ” 

efcore 动态查询,c#,web api,c#,oneapi

到这里,这个Web API 项目才算真正的和数据库接通了。

efcore 动态查询,c#,web api,c#,oneapi

        在这一步,我们将会创建两个文件夹,分别负责放置接口和实现方法。

接下来,我们写个方法来实现输入名字就能查询到所有信息的小功能吧

声明接口 

efcore 动态查询,c#,web api,c#,oneapi

 实现接口

efcore 动态查询,c#,web api,c#,oneapi

最后一步 创建API控制器 

 efcore 动态查询,c#,web api,c#,oneapi

选择API控制器

efcore 动态查询,c#,web api,c#,oneapi

 efcore 动态查询,c#,web api,c#,oneapi

注意 API 控制器命名要以Controller.cs结尾

efcore 动态查询,c#,web api,c#,oneapi

运行结果:efcore 动态查询,c#,web api,c#,oneapi 

 谢谢,你能看到这里,教程结束了。 文章来源地址https://www.toymoban.com/news/detail-657305.html

到了这里,关于ASP.Net Core Web Api+EFCore+MySql实现动态查询(保姆教学)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASP.NET Core Web API用户身份验证

    ASP.NET Core Web API用户身份验证的方法有很多,本文只介绍JWT方法。JWT实现了服务端无状态,在分布式服务、会话一致性、单点登录等方面凸显优势,不占用服务端资源。简单来说,JWT的验证过程如下所示: (1)通过用户名和密码获取一个Token。 (2)访问API时,加上这个Toke

    2024年02月11日
    浏览(50)
  • ASP.NET Core 中的两种 Web API

    ASP.NET Core 有两种创建 RESTful Web API 的方式: 基于 Controller,使用完整的基于ControllerBase的基类定义接口endpoints。 基于 Minimal APIs,使用Lambda表达式定义接口 endpoints。 基于 Controller 的 Web API 可以使用构造函数注入,或者属性注入,遵循面向对象模式。 基于 Minimal APIs 的 Web API 通

    2024年02月09日
    浏览(45)
  • ASP.NET Core Web API之Token验证

    在实际开发中,我们经常需要对外提供接口以便客户获取数据,由于数据属于私密信息,并不能随意供其他人访问,所以就需要验证客户身份。那么如何才能验证客户的什么呢?今天以一个简单的小例子,简述ASP.NET Core Web API开发过程中,常用的一种JWT身份验证方式。仅供学

    2024年02月11日
    浏览(50)
  • ASP.NET Core Web API 流式返回,逐字显示

    Websocket、SSE(Server-Sent Events)和长轮询(Long Polling)都是用于网页和服务端通信的技术。 Websocket是一种全双工通信协议,能够实现客户端和服务端之间的实时通信。它基于TCP协议,并且允许服务器主动向客户端推送数据,同时也允许客户端向服务器发送数据。 SSE是一种单向

    2023年04月23日
    浏览(54)
  • ASP.NET Core Web API入门之三:使用EF Core

    一般来讲我们做项目都会用实体类跟数据库实体进行关系对应,这样的好处方便我们维护、增删改查,并且可以减少SQL的编写,从而统一风格,那么 Entity Framework Core 就是很不错的ORM框架。 1、跨数据库支持能力强大,只需修改配置就可以轻松实现数据库切换。 2、提升了开发效

    2024年02月10日
    浏览(55)
  • asp.net core EFCore 属性配置与DbContext

    Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。用于程序中的class类和数据库中的表互相之间建立映射关系。在学习过程中,EFCore中的属性配置显的尤为重要它是学习好asp.net core的基础是配置数据库表结构的重要基石。本篇内容为

    2024年02月07日
    浏览(62)
  • 2.1 .net 8 ASP.NET Core Web API - Controller详解

    书接上回,上节我们留了几个问题,即: 1、接口Hello的名字究竟怎么来的? 2、我们如果想把接口改成其他的名称,应该怎么做? 3、我们继承ControllerBase,以及[Route(“[controller]”)]属性,又是分别起到什么作用? 需要解决以上几个问题,我们就要继续深入研究Controller相关的

    2024年02月20日
    浏览(50)
  • ASP.NET Core 中基于 Controller 的 Web API

    客户端发送Http请求,Contoller响应请求,并从数据库读取数据,序列化数据,然后通过 Http Response返回序列化的数据。 Web API 的所有controllers 一般继承于 ControllerBase 类,而不是Controller 类。 因为 Controller 类也继承自ControllerBase 类,但是支持views,而API一般不需要这个功能。 Co

    2024年02月10日
    浏览(71)
  • 在 ASP.NET Core Web API 中处理 Patch 请求

    PUT 和 PATCH 方法用于更新现有资源。 它们之间的区别是,PUT 会替换整个资源,而 PATCH 仅指定更改。 在 ASP.NET Core Web API 中,由于 C# 是一种静态语言( dynamic 在此不表),当我们定义了一个类型用于接收 HTTP Patch 请求参数的时候,在 Action 中无法直接从实例中得知客户端提供了哪

    2024年02月04日
    浏览(58)
  • ASP.NET Core 中基于 Minimal APIs 的Web API

    Minimal APIs 是ASP.NET Core中快速构建 REST API 的方式,可以用最少的代码构建全功能的REST API。比如下面三行代码: 可以实现在请求网站根目录结点的时候,返回\\\"Hello World!\\\"。 这种方式的Web API可以用于构建微服务,极简功能的网站。 下面代码,将几个 HTTP 请求的 url映射到 Lambda

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包