From 746ff89817b681b21dcf6b5dd46833c4f6c9d031 Mon Sep 17 00:00:00 2001 From: shiyangjiea <1317284428@qq.com> Date: Mon, 8 Jun 2026 00:09:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AC=94=E8=AE=B0260608?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...50\256\260-\345\256\211\350\243\205SDK.md" | 35 ++++++++ ...33\345\273\272\351\241\271\347\233\256.md" | 28 ++++++ ...\254\224\350\256\260-nuget\345\214\205.md" | 24 +++++ .../20260605\347\254\224\350\256\260-CRUD.md" | 90 +++++++++++++++++++ 4 files changed, 177 insertions(+) create mode 100644 "\347\216\213\351\221\253\346\272\220/20260601\347\254\224\350\256\260-\345\256\211\350\243\205SDK.md" create mode 100644 "\347\216\213\351\221\253\346\272\220/20260603\347\254\224\350\256\260-\345\210\233\345\273\272\351\241\271\347\233\256.md" create mode 100644 "\347\216\213\351\221\253\346\272\220/20260604\347\254\224\350\256\260-nuget\345\214\205.md" create mode 100644 "\347\216\213\351\221\253\346\272\220/20260605\347\254\224\350\256\260-CRUD.md" diff --git "a/\347\216\213\351\221\253\346\272\220/20260601\347\254\224\350\256\260-\345\256\211\350\243\205SDK.md" "b/\347\216\213\351\221\253\346\272\220/20260601\347\254\224\350\256\260-\345\256\211\350\243\205SDK.md" new file mode 100644 index 0000000..8551d03 --- /dev/null +++ "b/\347\216\213\351\221\253\346\272\220/20260601\347\254\224\350\256\260-\345\256\211\350\243\205SDK.md" @@ -0,0 +1,35 @@ +# 2026-06-01 笔记 — 安装 SDK + +## 目标 +- 在本机安装并验证 .NET SDK,保证 `dotnet` 命令可用。 + +## 系统要求 +- 支持 Windows、macOS、Linux;本笔记以 Windows 为主。 + +## 安装步骤(Windows) +1. 访问 .NET 官方下载页:https://dotnet.microsoft.com/download +2. 下载对应版本的 SDK 安装包(通常选择 LTS 或最新稳定版)。 +3. 运行安装程序,按提示完成安装。 + +## 验证 +在 PowerShell 或命令提示符中运行: + +``` +dotnet --info +dotnet --version +``` + +若能输出版本信息与 SDK 路径,则安装成功。 + +## 常见问题 +- PATH 未更新:重启终端或重启系统。 +- 权限问题:以管理员身份运行安装程序。 + +## 参考命令 +- 创建新项目(示例): + +``` +dotnet new webapi -n MyApi +cd MyApi +dotnet run +``` \ No newline at end of file diff --git "a/\347\216\213\351\221\253\346\272\220/20260603\347\254\224\350\256\260-\345\210\233\345\273\272\351\241\271\347\233\256.md" "b/\347\216\213\351\221\253\346\272\220/20260603\347\254\224\350\256\260-\345\210\233\345\273\272\351\241\271\347\233\256.md" new file mode 100644 index 0000000..755836c --- /dev/null +++ "b/\347\216\213\351\221\253\346\272\220/20260603\347\254\224\350\256\260-\345\210\233\345\273\272\351\241\271\347\233\256.md" @@ -0,0 +1,28 @@ +# 2026-06-03 笔记 — 创建项目 + +## 目标 +- 使用 `dotnet` CLI 创建基础项目并理解项目结构。 + +## 常用模板 +- Web API:`dotnet new webapi -n MyApi` +- 控制台:`dotnet new console -n MyApp` +- 类库:`dotnet new classlib -n MyLib` + +## 示例:创建并运行 Web API + +``` +dotnet new webapi -n MyApi +cd MyApi +dotnet run +``` + +运行后默认监听地址会在终端输出,浏览器或 Postman 访问即可。 + +## 项目结构简介 +- `Program.cs` / `Startup.cs`:应用入口与中间件配置。 +- `Controllers/`:API 控制器。 +- `appsettings.json`:配置文件。 +- `.csproj`:项目元数据与依赖声明。 + +## 本地调试 +- 在 IDE(如 Visual Studio / VS Code)中打开项目,设置断点,使用 `dotnet run` 或调试按钮启动。 \ No newline at end of file diff --git "a/\347\216\213\351\221\253\346\272\220/20260604\347\254\224\350\256\260-nuget\345\214\205.md" "b/\347\216\213\351\221\253\346\272\220/20260604\347\254\224\350\256\260-nuget\345\214\205.md" new file mode 100644 index 0000000..8fe902e --- /dev/null +++ "b/\347\216\213\351\221\253\346\272\220/20260604\347\254\224\350\256\260-nuget\345\214\205.md" @@ -0,0 +1,24 @@ +# 2026-06-04 笔记 — NuGet 包管理 + +## 目标 +- 使用 `dotnet` CLI 管理 NuGet 包:添加、还原、打包与推送。 + +## 常用命令 +- 添加包:`dotnet add package ` +- 恢复依赖:`dotnet restore` +- 列出包:查看 `.csproj` 中的 `PackageReference` 项 + +## 打包与发布(库) + +``` +dotnet pack -c Release +dotnet nuget push bin\Release\MyLib.*.nupkg -s <源地址> -k +``` + +## 本地源与私有源 +- 本地文件夹源:在 `NuGet.Config` 中添加 ``。 +- 私有源:使用私有 NuGet Server 或 Azure Artifacts,推送时需 API Key 或凭据。 + +## 版本管理建议 +- 遵循语义化版本(SemVer):MAJOR.MINOR.PATCH +- 每次发布前更新 `.csproj` 中的 `Version` 或使用 CI 自动打包时注入版本号。 \ No newline at end of file diff --git "a/\347\216\213\351\221\253\346\272\220/20260605\347\254\224\350\256\260-CRUD.md" "b/\347\216\213\351\221\253\346\272\220/20260605\347\254\224\350\256\260-CRUD.md" new file mode 100644 index 0000000..90af8e7 --- /dev/null +++ "b/\347\216\213\351\221\253\346\272\220/20260605\347\254\224\350\256\260-CRUD.md" @@ -0,0 +1,90 @@ +# 2026-06-05 笔记 — CRUD(创建/读取/更新/删除) + +## 目标 +- 在 Web API 中实现实体的基本 CRUD 操作,示例使用 ASP.NET Core + EF Core。 + +## 基本步骤 +1. 定义实体类: + +```csharp +public class TodoItem +{ + public int Id { get; set; } + public string Title { get; set; } + public bool IsDone { get; set; } +} +``` + +2. 创建 `DbContext`: + +```csharp +public class AppDbContext : DbContext +{ + public DbSet TodoItems { get; set; } + public AppDbContext(DbContextOptions options) : base(options) { } +} +``` + +3. 配置服务(`Program.cs` 或 `Startup.cs`): + +```csharp +builder.Services.AddDbContext(opt => + opt.UseSqlServer(builder.Configuration.GetConnectionString("Default"))); +``` + +4. 生成迁移并更新数据库: + +``` +dotnet ef migrations add Init +dotnet ef database update +``` + +5. 控制器示例(简化): + +```csharp +[ApiController] +[Route("api/[controller]")] +public class TodoController : ControllerBase +{ + private readonly AppDbContext _db; + public TodoController(AppDbContext db) => _db = db; + + [HttpGet] + public async Task> Get() => await _db.TodoItems.ToListAsync(); + + [HttpGet("{id}")] + public async Task> Get(int id) => await _db.TodoItems.FindAsync(id) is TodoItem item ? Ok(item) : NotFound(); + + [HttpPost] + public async Task> Post(TodoItem item) + { + _db.TodoItems.Add(item); + await _db.SaveChangesAsync(); + return CreatedAtAction(nameof(Get), new { id = item.Id }, item); + } + + [HttpPut("{id}")] + public async Task Put(int id, TodoItem input) + { + var item = await _db.TodoItems.FindAsync(id); + if (item == null) return NotFound(); + item.Title = input.Title; + item.IsDone = input.IsDone; + await _db.SaveChangesAsync(); + return NoContent(); + } + + [HttpDelete("{id}")] + public async Task Delete(int id) + { + var item = await _db.TodoItems.FindAsync(id); + if (item == null) return NotFound(); + _db.TodoItems.Remove(item); + await _db.SaveChangesAsync(); + return NoContent(); + } +} +``` + +## 测试 +- 使用 Postman 或 curl 测试 `GET/POST/PUT/DELETE`。 \ No newline at end of file -- Gitee From d5005ec3d87857c3442dd13fe7d6f01941e0dc81 Mon Sep 17 00:00:00 2001 From: shiyangjiea <1317284428@qq.com> Date: Sun, 14 Jun 2026 22:41:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AC=94=E8=AE=B0260614?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...74\350\210\252\345\261\236\346\200\247.md" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "\347\216\213\351\221\253\346\272\220/20260608\347\254\224\350\256\260-\345\257\274\350\210\252\345\261\236\346\200\247.md" diff --git "a/\347\216\213\351\221\253\346\272\220/20260608\347\254\224\350\256\260-\345\257\274\350\210\252\345\261\236\346\200\247.md" "b/\347\216\213\351\221\253\346\272\220/20260608\347\254\224\350\256\260-\345\257\274\350\210\252\345\261\236\346\200\247.md" new file mode 100644 index 0000000..c5b73d2 --- /dev/null +++ "b/\347\216\213\351\221\253\346\272\220/20260608\347\254\224\350\256\260-\345\257\274\350\210\252\345\261\236\346\200\247.md" @@ -0,0 +1,27 @@ +## 笔记 + +一、核心概念 +一对多:主实体(一) → 子实体(多),通过外键关联,导航属性用来在实体间互相查询。 +例:班级(一) ↔ 学生(多) + +二、实体定义(EF Core) +- 1. 主实体(一) +```csharp +public class Class +{ + public int Id { get; set; } + public string Name { get; set; } + public List Students { get; set; } +} +``` + +- 2. 子实体(多) +```csharp +public class Student +{ + public int Id { get; set; } + public string StuName { get; set; } + public int ClassId { get; set; } + public Class Class { get; set; } +} +``` \ No newline at end of file -- Gitee