






















ASP.NET Core CRUD API - 创建 UserController,实现 Get, Post, Put, Delete 方法,使用 EF Core 访问数据库。
Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.SqlServer # SQL Server 数据库 Install-Package Microsoft.EntityFrameworkCore.Tools 在项目中新建 Models 文件夹,创建 User.cs namespace UserCRUDAPI.Models { // 用户实体(对应数据库表) public class User { public int Id { get; set; } // 主键,自增 public string UserName { get; set; } = string.Empty; // 用户名 public string Email { get; set; } = string.Empty; // 邮箱 public int Age { get; set; } // 年龄 } } 新建 Data 文件夹,创建 AppDbContext.cs using Microsoft.EntityFrameworkCore; using UserCRUDAPI.Models; namespace UserCRUDAPI.Data { // 数据库上下文:连接 EF Core 和数据库 public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } // 对应数据库中的 Users 表 public DbSet<User> Users => Set<User>(); } } 打开 appsettings.json,添加连接字符串(修改为你的 SQL Server 地址) { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", // 数据库连接字符串 "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=UserCRUDDB;Trusted_Connection=True;TrustServerCertificate=True;" } } 在 Program.cs 中注入数据库上下文: using Microsoft.EntityFrameworkCore; using UserCRUDAPI.Data; var builder = WebApplication.CreateBuilder(args); // 添加控制器 builder.Services.AddControllers(); // 注册 EF Core + SQL Server builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); // Swagger(接口测试工具) builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // 开发环境启用 Swagger if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); 打开 程序包管理器控制台 执行: Add-Migration InitialCreate # 创建迁移文件 Update-Database # 生成数据库和表 执行成功后,会自动创建 UserCRUDDB 库和 Users 表。 在 Controllers 文件夹创建 UserController.cs using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using UserCRUDAPI.Data; using UserCRUDAPI.Models; namespace UserCRUDAPI.Controllers { [Route("api/[controller]")] // 路由:api/User [ApiController] // 自动模型验证、API 特性 public class UserController : ControllerBase { private readonly AppDbContext _context; // 构造函数注入数据库上下文 public UserController(AppDbContext context) { _context = context; } // ======================== 1. 获取所有用户 ======================== [HttpGet] public async Task<ActionResult<IEnumerable<User>>> GetUsers() { return await _context.Users.ToListAsync(); } // ======================== 2. 根据ID获取单个用户 ======================== [HttpGet("{id}")] public async Task<ActionResult<User>> GetUser(int id) { var user = await _context.Users.FindAsync(id); if (user == null) { return NotFound(); // 返回 404 } return user; } // ======================== 3. 修改用户 ======================== [HttpPut("{id}")] public async Task<IActionResult> PutUser(int id, User user) { if (id != user.Id) { return BadRequest(); // 传入ID与实体ID不匹配 } _context.Entry(user).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserExists(id)) { return NotFound(); } else { throw; } } return NoContent(); // 返回 204 成功无内容 } // ======================== 4. 新增用户 ======================== [HttpPost] public async Task<ActionResult<User>> PostUser(User user) { _context.Users.Add(user); await _context.SaveChangesAsync(); // 返回 201 + 创建的资源地址 return CreatedAtAction("GetUser", new { id = user.Id }, user); } // ======================== 5. 删除用户 ======================== [HttpDelete("{id}")] public async Task<IActionResult> DeleteUser(int id) { var user = await _context.Users.FindAsync(id); if (user == null) { return NotFound(); } _context.Users.Remove(user); await _context.SaveChangesAsync(); return NoContent(); } // 辅助方法:判断用户是否存在 private bool UserExists(int id) { return _context.Users.Any(e => e.Id == id); } } }
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。