面向 C# 初学者的完整教程

🧱 一、项目结构说明

你的项目大致结构如下:

复制代码
TaskManager/
├── backend/
│   ├── TaskManager.Core/           // 实体类和接口
│   ├── TaskManager.Infrastructure/ // 数据库、服务实现
│   └── TaskManager.API/            // Web API 入口(控制器 + Program.cs)
└── frontend/                       // React/Next.js 前端

✅ 二、安装依赖项

你需要先确保 .NET SDK 已安装:

1. 检查 .NET SDK 是否安装

bash 复制代码
dotnet --version

如果没有,请去官网下载并安装:https://dotnet.microsoft.com/en-us/download


2. 安装 Entity Framework Core 相关包(在项目目录执行)

bash 复制代码
# 进入 Infrastructure 项目目录
cd TaskManager.Infrastructure

# 安装数据库相关包(你使用的是 SQL Server)
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package BCrypt.Net-Next     # 用户密码加密

# 如果你有 API 项目也需使用 EF Core 工具支持迁移
cd ../TaskManager.API
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer

🛠️ 三、构建项目

1. 回到根目录构建整个项目解决方案

bash 复制代码
cd D:\Users\gento\RiderProjects\TaskManager\backend
dotnet build

如果你已经在用 Rider 或 Visual Studio,也可以直接点击"Build"按钮。


🚀 四、数据库迁移与更新

你需要先根据实体类生成数据库表:

1. 创建数据库迁移(注意指定项目)

bash 复制代码
cd TaskManager.API
dotnet ef migrations add InitialCreate --project ../TaskManager.Infrastructure

2. 执行迁移,更新数据库

bash 复制代码
dotnet ef database update --project ../TaskManager.Infrastructure

🏃 五、运行 API 项目

运行 TaskManager.API 项目:

bash 复制代码
cd ../TaskManager.API
dotnet run

运行后你会看到:

bash 复制代码
Now listening on: http://localhost:5201

你可以用 Postman 或浏览器访问接口,例如:

  • http://localhost:5201/api/tasks
  • http://localhost:5201/api/auth/register

🧪 六、常见问题速查

问题 解决方法
localStorage 报错 用 typeof window !== 'undefined' 判断是否在浏览器环境
Token 报 401 检查是否正确设置 Bearer 头、是否数据库已更新并包含用户表
EF 报 Invalid object name 是数据库中表未创建成功,请重新执行迁移或检查连接字符串
DLL 被锁定,编译失败 关闭正在运行的 API(任务管理器或 Ctrl+C),然后重试构建

📌 七、建议的开发流程

  1. 每次修改实体类后,执行一次迁移:dotnet ef migrations add ...
  2. 每次迁移后更新数据库:dotnet ef database update
  3. 如果构建失败先 dotnet clean,然后 dotnet build
  4. 本地调试:先运行后端,再启动前端(Next.js)
相关推荐
samble5 小时前
从零搭建灌装监控系统(十七):LiveCharts 实时温度曲线
c#·wpf·mvvm·modbus·工业控制
kimnoic5 小时前
Python数据库学习心得:SQLite、MySQL、PostgreSQL优缺点
开发语言·python
必须得开心呀6 小时前
python编写带界面的软件,需要安装哪些插件
开发语言·python
沫璃染墨8 小时前
《Qt从零入门系列(十三):QSS样式表详解——从选择器与层叠规则到控件美化实战》
开发语言·css·c++·qt·ui·qt6.3·qss
达子6669 小时前
RUST 图解 第 3 章:通用编程概念(Common Programming Concepts)
开发语言·算法·rust
道尔柯南9 小时前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法
楠楠子呀10 小时前
英语、西语、阿语客户各开一个口:多语言获客的分流方案
开发语言·javascript·ecmascript·跨境电商·whatsapp·营销工具
tachibana210 小时前
使用for range 的时候,它的地址会发生变化吗?
开发语言·后端·golang·go·语法
临床数据科学和人工智能兴趣组10 小时前
正则表达式的基础语法的基本符号
开发语言·人工智能·python·正则表达式·r语言·r语言-4.2.1·workbudyy
王中阳Go10 小时前
Go 后端转 AI:非科班怎么补?一张 3 列路线表(可保存)
开发语言·人工智能·后端·python·golang·大语言模型