C# webApi学习笔记

C# webApi学习笔记 创建实体类这里会自动生成构造函数但是不会生成tostringnamespace WebApplication1.Products { public class Product { public string productId { get; set; } public string productName { get; set; } public override string ToString() { return ${nameof(productId)}: {productId}, {nameof(productName)}: {productName}; } } }创建连接数据库类using Microsoft.EntityFrameworkCore; using WebApplication1.Products; namespace WebApplication1.Data { public class AppDbContext : DbContext { // 构造函数用于接收配置 public AppDbContext(DbContextOptionsAppDbContext options) : base(options) { } // DbSet 代表数据库中的一张表后续的CRUD操作都基于它 public DbSetProduct Todos { get; set; } } }webApi 控制层入口文件main方法中向依赖注入容器注册AppDbContextbuilder.Services.AddDbContextAppDbContext(options options.UseMySql( builder.Configuration.GetConnectionString(DefaultConnection), new MySqlServerVersion(new Version(8, 0, 33)) // 根据你的 MySQL 版本调整 ));ToList();执行sql并存储到Listusing Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using WebApplication1.Data; using WebApplication1.Products; namespace WebApplication1.TodosController { [Route(api/)] [ApiController] public class ValuesController : ControllerBase { private readonly AppDbContext appdbs; // 构造函数自动注入SQL连接的基本数据 public ValuesController(AppDbContext appdb) { this.appdbs appdb; } [Route(getProduct)] [HttpGet] public ListProduct GetProduct([FromQuery]Product product) { Console.WriteLine(product); var todos appdbs.Todos.FromSqlRaw(select productId,productName From product where productId {0}, PRO258Q00004).ToList(); return todos; } } }CRUDusing Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using WebApplication1.Data; using WebApplication1.Products; namespace WebApplication1.TodosController { [Route(api/)] [ApiController] public class ValuesController : ControllerBase { private readonly AppDbContext appdbs; // 构造函数自动注入SQL连接的基本数据 public ValuesController(AppDbContext appdb) { this.appdbs appdb; } [Route(getProduct)] [HttpGet] public async TaskListProduct GetProduct([FromQuery]Product product) { var todos await appdbs.Todos.FromSqlRaw(select productId,productName From product).ToListAsync(); var psName todos.Where(p p.productName FCSES); foreach (var item in todos) { Console.WriteLine(item.productName); } return todos; } [Route(add)] [HttpPost] public IActionResult Insert([FromBody] Product product) { int todos appdbs.Database.ExecuteSqlRaw(insert into product(productName)values({0}), product.productName); return StatusCode(200,插入成功); } [Route(update)] [HttpPut] public IActionResult Update([FromBody] Product product) { int rowsAffected appdbs.Database.ExecuteSqlRaw( UPDATE product SET productName {0} WHERE productId {1}, product.productName, product.productId ); if (rowsAffected 0) { return StatusCode(200,修改成功); } return StatusCode(500,修改失败) ; } [Route(delete)] [HttpDelete] public IActionResult Delete([FromQuery] string productId) { int rowsAffected appdbs.Database.ExecuteSqlRaw( DELETE FROM product WHERE productId {0}, productId ); return StatusCode(200,删除成功); } } }所需要的依赖包,以及安装依赖修改默认端口Kestrel: { Endpoints: { Https: { Url: https://*:9601 }, Http: { Url: http://*:9600 } } }接收参数注解