From 02ada58f1e4bbc615f0aaf7ac2ac90db6f2eb5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A0=E9=9B=AA=E8=8A=B9?= <1508658027@qq.com> Date: Sun, 25 Jan 2026 20:58:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...06\345\233\276\346\250\241\345\236\213.md" | 25 ++++++++++++++ ...16\346\225\260\346\215\256\345\272\223.md" | 33 +++++++++++++++++++ .../20260122-\346\224\271\346\237\245.md" | 24 ++++++++++++++ ...71\346\237\245\346\200\273\347\273\223.md" | 3 ++ 4 files changed, 85 insertions(+) create mode 100644 "\345\215\240\351\233\252\350\212\271/20260119-\350\247\206\345\233\276\346\250\241\345\236\213.md" create mode 100644 "\345\215\240\351\233\252\350\212\271/20260121-EFCore\344\270\216\346\225\260\346\215\256\345\272\223.md" create mode 100644 "\345\215\240\351\233\252\350\212\271/20260122-\346\224\271\346\237\245.md" create mode 100644 "\345\215\240\351\233\252\350\212\271/20260123-\345\242\236\345\210\240\346\224\271\346\237\245\346\200\273\347\273\223.md" diff --git "a/\345\215\240\351\233\252\350\212\271/20260119-\350\247\206\345\233\276\346\250\241\345\236\213.md" "b/\345\215\240\351\233\252\350\212\271/20260119-\350\247\206\345\233\276\346\250\241\345\236\213.md" new file mode 100644 index 0000000..4bf2abf --- /dev/null +++ "b/\345\215\240\351\233\252\350\212\271/20260119-\350\247\206\345\233\276\346\250\241\345\236\213.md" @@ -0,0 +1,25 @@ +# 笔记 + +## 为什么需要视图模型? + + - 领域模型可能不适合直接用于视图 + + - 视图可能需要组合多个领域模型的数据 + + - 避免过度暴露领域模型细节 + + - 为视图定制专门的数据结构 + +## 什么是模型绑定 + + - 模型绑定是ASP.NET Core将HTTP请求数据自动映射到控制器动作参数的过程。 + +### 绑定来源 + + - 路由数据(Route data) + + - 查询字符串(Query string) + + - 表单数据(Form data) + + - JSON/XML请求体 \ No newline at end of file diff --git "a/\345\215\240\351\233\252\350\212\271/20260121-EFCore\344\270\216\346\225\260\346\215\256\345\272\223.md" "b/\345\215\240\351\233\252\350\212\271/20260121-EFCore\344\270\216\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000..9f5d90d --- /dev/null +++ "b/\345\215\240\351\233\252\350\212\271/20260121-EFCore\344\270\216\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,33 @@ +# 笔记 + +## Microsoft.ENtityFrameworkCore 这个包是核心包,就是EFCore的核心包 + +## Microsoft.ENtityFrameworkCore.Sqlite 这个包是使用Sqlite数据库的驱动包 + +## EFCore及数据库连接功能引入 + +### 步骤一:安装2个包 + +### 步骤二:定义数据库上下文 + + - public DbSet Vips{get;set;} (定义数据库) + + - protect override void OnConfiguring(DbContextOptionsBuilder options){options.UseSqlite()} (配置数据库连接字符串) + +### 步骤三:执行数据库迁移 + + - 不能有编译错误 + + - 项目不在运行状态 + + - dotnet ef migrations add Xxx(命令) + + - dotnet tool install --global dotnet-ef(如果ef工具没有安装,使用如下命令安装) + +### 步骤四:将迁移文件更新/应用到数据库 + + - dotent ef database update + +### 步骤五:在控制器中使用数据库上下文进行CRUO + + - 增删改查 \ No newline at end of file diff --git "a/\345\215\240\351\233\252\350\212\271/20260122-\346\224\271\346\237\245.md" "b/\345\215\240\351\233\252\350\212\271/20260122-\346\224\271\346\237\245.md" new file mode 100644 index 0000000..ea3a9bf --- /dev/null +++ "b/\345\215\240\351\233\252\350\212\271/20260122-\346\224\271\346\237\245.md" @@ -0,0 +1,24 @@ +# 笔记 + +## 先查询再修改 + + ```bash + var student = await _context.Students.FindAsync(id); student.Name = newName; + await _context.SaveChangesAsync(); + ``` + +### 直接附加修改 + + ```bash + var student = new Student { Id = id, Name = newName }; _context.Attach(student); _context.Entry(student).Property(s=>s.Name).IsModified=true; + ``` + +### 自动记录变更 + +### 重写DbContext的SaveChangesAsync: + + - 保存前:收集实体变更(新增 / 修改 / 删除)信息,生成审计条目; + + - 保存后:将审计条目转为AuditLog写入数据库; + + - 异常处理:并发冲突时记录审计日志。 \ No newline at end of file diff --git "a/\345\215\240\351\233\252\350\212\271/20260123-\345\242\236\345\210\240\346\224\271\346\237\245\346\200\273\347\273\223.md" "b/\345\215\240\351\233\252\350\212\271/20260123-\345\242\236\345\210\240\346\224\271\346\237\245\346\200\273\347\273\223.md" new file mode 100644 index 0000000..72c9610 --- /dev/null +++ "b/\345\215\240\351\233\252\350\212\271/20260123-\345\242\236\345\210\240\346\224\271\346\237\245\346\200\273\347\273\223.md" @@ -0,0 +1,3 @@ +# 笔记 + +回顾了一下增删改查的全部流程 \ No newline at end of file -- Gitee