Skip to main content

.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 # 项目文件(依赖项等)

🧩 示例:添加数据模型和数据库上下文

  1. 安装 Entity Framework Core(以 SQL Server 为例)
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
  1. 创建模型类
// Models/Product.cs
public class Product {
public int Id { get; set; }
public string Name { get; set; }
}
  1. 创建数据库上下文
// 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 中,支持多环境配置。

📚 推荐资源