.NET 文件架构与 Web API 项目结构
.NET 项目的结构设计清晰、可扩展性强,特别是在 ASP.NET Core Web API 项目中。本文将介绍 .NET 的典型项目架构、初始化方法以及数据库连接示例。
🚀 初始化 ASP.NET Core Web API 项目
dotnet new webapi -n MyWebApi
cd MyWebApi
dotnet run
该命令会自动生成一个基本的 Web API 项目。
📁 项目目录结构说明
MyWebApi/
├── Controllers/ # 控制器(路由逻辑)
│ └── WeatherForecastController.cs
├── Models/ # 数据模型(DTO / 实体类)
├── Services/ # 业务逻辑服务(可选)
├── Data/ # 数据库上下文与迁移(EF Core)
├── Program.cs # 应用入口点(配置中间件)
├── appsettings.json # 配置文件(连接字符串等)
├── MyWebApi.csproj # 项目文件(依赖项等)
🧩 示例:添加数据模型和数据库上下文
- 安装 Entity Framework Core(以 SQL Server 为例)
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
- 创建模型类
// Models/Product.cs
public class Product {
public int Id { get; set; }
public string Name { get; set; }
}
- 创建数据库上下文
// Data/AppDbContext.cs
using Microsoft.EntityFrameworkCore;
using MyWebApi.Models;
public class AppDbContext : DbContext {
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<Product> Products { get; set; }
}
🔧 配置数据库连接
编辑 appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=MyDb;Trusted_Connection=True;"
}
}
注册上下文(在 Program.cs 中):
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
🧪 添加迁移和生成数据库
dotnet ef migrations add InitialCreate
dotnet ef database update
确保已安装 dotnet-ef CLI:
dotnet tool install --global dotnet-ef
📦 示例:创建 CRUD 控制器
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase {
private readonly AppDbContext _context;
public ProductsController(AppDbContext context) => _context = context;
[HttpGet]
public async Task<IEnumerable<Product>> Get() => await _context.Products.ToListAsync();
[HttpPost]
public async Task<IActionResult> Post(Product product) {
_context.Products.Add(product);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(Get), new { id = product.Id }, product);
}
}
🧠 小贴士
数据库配置分环境管理
建议使用多个 appsettings.{Environment}.json 文件:
- appsettings.Development.json
- appsettings.Production.json
示例启动命令
ASPNETCORE_ENVIRONMENT=Development dotnet run
✅ 总结
- .NET Web API 项目结构清晰,建议按目录组织模型、服务、控制器等;
- 使用
EF Core简化数据库操作; - 可通过
Program.cs注入服务并配置数据库; - 项目配置集中在
appsettings.json中,支持多环境配置。