查询单条数据
添加数据
添加成功
成功添加显示
修改数据
修改成功
第二条数据成功更改
删除数据
删除第一条数据,删除成功
Category控制器代码如下:
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using shopingPro.Data;
using shopingPro.Models;
namespace shopingPro.Controllers
{
//URL + HTTP = RESTfull开发风格
[Route("api/[controller]")]
[ApiController]
public class CategoryController : ControllerBase
{
private readonly ShopDbContext _db;
//通过构造函数注入数据库上下文
public CategoryController(ShopDbContext db)
{
_db = db;
}
//async:异步,增加代码并发量,
//因为请求发送到服务器上都是通过线程池来处理,线程池是有一定容量的,容量满之后就很难处理,
//而通过异步可以增加容量,提高服务器性能
/// <summary>
/// 查询所有数据
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult<IEnumerable<Category>>> GetList()
{
return await _db.Categories.ToListAsync();
}
/// <summary>
/// 查询单个数据
/// </summary>
/// <returns></returns>
[HttpGet("{id}")]
public async Task<ActionResult<Category>> GetOne(int id)
{
var category = await _db.Categories.FindAsync(id);
if(category == null)
{
return NotFound();
}
return category;
}
/// <summary>
/// 添加数据
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
public async Task<ActionResult<int>> AddOne(Category model)
{
await _db.Categories.AddAsync(model);
await _db.SaveChangesAsync();
return model.Id;
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPut]
public async Task<IActionResult> PutOne(Category model)
{
var category = await _db.Categories.FindAsync(model.Id);
if(category == null)
{
return NotFound();
}
category.Name = model.Name;
await _db.SaveChangesAsync();
return NoContent();
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteOne(int id)
{
var category = await _db.Categories.FindAsync(id);
if (category == null)
{
return NotFound();
}
_db.Categories.Remove(category);
await _db.SaveChangesAsync();
return NoContent();
}
}
}