From 587286fccef8f764a4020cc217f58dd426e592a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=8D=E5=AD=A6=E5=86=9B?= <3966863460@qq.com> Date: Sun, 7 Jun 2026 22:52:52 +0800 Subject: [PATCH 1/2] zy --- .../20260601.md" | 17 +++++++ .../20260603.md" | 19 ++++++++ ...\254\254\344\270\200\344\270\252webapi.md" | 26 +++++++++++ .../20260605.md" | 45 +++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 "\344\274\215\345\255\246\345\206\233/20260601.md" create mode 100644 "\344\274\215\345\255\246\345\206\233/20260603.md" create mode 100644 "\344\274\215\345\255\246\345\206\233/20260604-\345\210\233\345\273\272\347\254\254\344\270\200\344\270\252webapi.md" create mode 100644 "\344\274\215\345\255\246\345\206\233/20260605.md" diff --git "a/\344\274\215\345\255\246\345\206\233/20260601.md" "b/\344\274\215\345\255\246\345\206\233/20260601.md" new file mode 100644 index 0000000..cf4fdbe --- /dev/null +++ "b/\344\274\215\345\255\246\345\206\233/20260601.md" @@ -0,0 +1,17 @@ +## 笔记 + + +``` +访问 https://dotnet.microsoft.com/download/dotnet/8.0 +根据你的操作系统选择对应的 SDK 安装包(注意不是 Runtime) +下载完成后双击安装,全部默认下一步即可 +安装完成后,打开终端验证: + +dotnet --version +输出类似 8.0.xxx 即表示安装成功。 + +再验证 SDK 列表: + +dotnet --list-sdks + +``` \ No newline at end of file diff --git "a/\344\274\215\345\255\246\345\206\233/20260603.md" "b/\344\274\215\345\255\246\345\206\233/20260603.md" new file mode 100644 index 0000000..515b26a --- /dev/null +++ "b/\344\274\215\345\255\246\345\206\233/20260603.md" @@ -0,0 +1,19 @@ +## 笔记 + +### 需已完成 Webati SDK 的安装配置。 + +1. **创建目录**:在终端执行 `mkdir my-web-project` 创建项目目录,并用 `cd my-web-project` 进入。 +2. **初始化配置**:运行 `webati-sdk init`。根据提示填入项目名称、类型及上一步确定的需求。 +3. **安装依赖**:执行 `npm install` 安装必要的项目依赖。 + +## 三、核心开发与配置 + + +- 在 SDK 的 `/content` 目录下,使用 HTML/Markdown 等,将准备好的文案和图片素材构建到页面中。 +- 在 `/assets` 目录内放置 CSS/JS 文件,并将页面布局与**设计的视觉稿 (Mock Layout)** 进行比对,确保功能与设计一致。 + +## 四、启动与发布 + +1. 在项目根目录执行 `npm run dev` 启动开发服务器预览。 +2. 完成开发后,执行 `npm run build` 打包生产版本。 +3. 将生成的 `/dist` 目录上传至您的网站服务器(如 Apache/Nginx)。 \ No newline at end of file diff --git "a/\344\274\215\345\255\246\345\206\233/20260604-\345\210\233\345\273\272\347\254\254\344\270\200\344\270\252webapi.md" "b/\344\274\215\345\255\246\345\206\233/20260604-\345\210\233\345\273\272\347\254\254\344\270\200\344\270\252webapi.md" new file mode 100644 index 0000000..ee00ba0 --- /dev/null +++ "b/\344\274\215\345\255\246\345\206\233/20260604-\345\210\233\345\273\272\347\254\254\344\270\200\344\270\252webapi.md" @@ -0,0 +1,26 @@ +## 笔记 + +``` +创建项目 +在终端(PowerShell / bash)里: + +# 切到你想放代码的目录 +mkdir MyShopApi && cd MyShopApi + +# 创建 Web API 项目 +dotnet new webapi -n MyShopApi --use-controllers + +# 进入项目目录 +cd MyShopApi +参数说明: + +webapi:项目模板名 +-n MyShopApi:项目名(生成的目录名、命名空间) +--use-controllers:用 Controller-based 风格(vs Minimal API) +第一次执行 dotnet new webapi 时会还原 NuGet 包,可能需要十几秒。 + + +dotnet run + + +``` \ No newline at end of file diff --git "a/\344\274\215\345\255\246\345\206\233/20260605.md" "b/\344\274\215\345\255\246\345\206\233/20260605.md" new file mode 100644 index 0000000..8f2b604 --- /dev/null +++ "b/\344\274\215\345\255\246\345\206\233/20260605.md" @@ -0,0 +1,45 @@ +## 笔记 + + 数据库驱动: `dotnet add package Microsoft.EntityFrameworkCore.Sqlite` +- 数据库迁移依赖包:`dotnet add package Microsoft.EntityFrameworkCore.Design` +- 安装dotnet-ef 工具:`dotnet tool install --global dotnet-ef` +## 定义实体类型和数据库上下文 +- 定义实体类型 +- 定义数据库上下文 +## 配置文件定义数据库文件的位置 +- 修改`appsettings.json:ConnectionStrings:{"sqlite":"data source=./db.db"}` +## Program 注册服务: +``` +builder.Services.AddDbContext(opt=>opt.UseSqlite( + builder.Configuration.GetConnectionString("Default") +)); +``` +## 生成迁移文件以及同步迁移文件到数据库 +- 前提 + - 项目没有编辑错误 + - 项目没有在运行状态 +- 生成迁移文件 + - `dotnet ef migrations add Init` # 创建迁移快照 + - `dotnet ef database update` # 执行SQL生成数据库 +- 生成迁移文件 + - `dotnet ef migrations add Xxx` +- 同步迁移文件到数据 + - `dotnet ef database update` + + - 依赖注入-定义私有变量:`private readonly AppDbContext _db;` +- 依赖注入-通过构造注入: +``` +public BookController(AppDbContext db) +{ + _db=db; +} +``` +- 核心方法: + - 查询列表:ToListAsync() + - 查询单个:FindAsync(id) + - 新增:Add(实体) + SaveChangesAsync() + - 修改:查询实体→更新属性→SaveChangesAsync() + - 删除:查询实体→Remove(实体)→SaveChangesAsync() +- 统一使用复数名词: `/api/categories` +- `get /api/cate/{cateId}/blogs` 获取指定类型下的所有的博客 +- `get /api/cate/{cateId}/blogs/{blogId}` 获取指定类型下的指定的博客 \ No newline at end of file -- Gitee From 78095a8355a857a6d020817d5f08ee303dc4e652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=8D=E5=AD=A6=E5=86=9B?= <3966863460@qq.com> Date: Sun, 14 Jun 2026 21:34:40 +0800 Subject: [PATCH 2/2] zy --- .../20260608.md" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "\344\274\215\345\255\246\345\206\233/20260608.md" diff --git "a/\344\274\215\345\255\246\345\206\233/20260608.md" "b/\344\274\215\345\255\246\345\206\233/20260608.md" new file mode 100644 index 0000000..e3d87eb --- /dev/null +++ "b/\344\274\215\345\255\246\345\206\233/20260608.md" @@ -0,0 +1,40 @@ +## 笔记 + + + + + + +``` + +public ICollection Products { get; set; } + + +public int CategoryId { get; set; } +public Category? Category { get; set; } +``` + + + + + + +### 方向解释 +- `HasOne` → Product 有一个 Category +- `WithMany` → Category 有多个 Product +- `Restrict` → 有子记录时禁止删除父记录 + +--- + +## 关系查询(必须 `Include`) + +```csharp +// 多 → 一 +await _db.Products.Include(p => p.Category).FirstAsync(); + +// 一 → 多 +await _db.Categories.Include(c => c.Products).FirstAsync(); +``` + + + -- Gitee