From f80e38e414be765d356a0403d0f1f47c9e982319 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 8 Dec 2024 20:21:47 +0800 Subject: [PATCH] tj --- .../20241202\346\237\245.md" | 19 +++ ...40\351\231\244\346\237\245\346\211\276.md" | 157 ++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 "\351\231\210\345\245\225\344\275\263/20241202\346\237\245.md" create mode 100644 "\351\231\210\345\245\225\344\275\263/20241204\345\210\240\351\231\244\346\237\245\346\211\276.md" diff --git "a/\351\231\210\345\245\225\344\275\263/20241202\346\237\245.md" "b/\351\231\210\345\245\225\344\275\263/20241202\346\237\245.md" new file mode 100644 index 0000000..8f0f0ac --- /dev/null +++ "b/\351\231\210\345\245\225\344\275\263/20241202\346\237\245.md" @@ -0,0 +1,19 @@ +## Linq集成查询 + + 作用在谁的身上:集合 + 特别是实现了IEnumerable接口的集合上,方法参数中,一般是Lambda表达式(其实就是匿名函数) + +查询单个元素 + + First() 函数中可以写查找第一个的条件,形如(t => t.Id==id)。但是如果没有第一个元素,或者没有符合条件的第一个元素,则报错 + FirstOrDefault() 类似上面的用法,但是在没有符合条件的时候,不报错,而是返回一个null + var s=Two.Student.FirstOrDefault(t=>t.Id==id); +查询多个元素 + + Where() 条件函数,可以查找符合一定条件(可多个)的元素,返回的是一个集合 + var s = Two.Student.Where(x=>x.Id == id && x.Author == "可可"); +重新返回的数据类型 + + Select() 这个函数可帮助我们处理函数返回的真正内容 + // 可重命名,也可以直接写{ x.Id, x.Author } + var s =Two.Student.Select(x => new { Xyz = x.Id, Abc = x.Author }); \ No newline at end of file diff --git "a/\351\231\210\345\245\225\344\275\263/20241204\345\210\240\351\231\244\346\237\245\346\211\276.md" "b/\351\231\210\345\245\225\344\275\263/20241204\345\210\240\351\231\244\346\237\245\346\211\276.md" new file mode 100644 index 0000000..678eb82 --- /dev/null +++ "b/\351\231\210\345\245\225\344\275\263/20241204\345\210\240\351\231\244\346\237\245\346\211\276.md" @@ -0,0 +1,157 @@ +## 删除操作 +### 控制器中的处理逻辑 +#### 1. 渲染删除页面 +- **操作**:根据传入的 `id` 在数据库表中查找对应记录。 +- **逻辑**: + - 如果找到记录,则返回元素供用户确认删除。 + - 如果找不到记录,则提示用户目标不存在。 +- **示例代码**: + ```cs + public IActionResult Delete(int id) + { + var blog = Db.Blogs.FirstOrDefault(b => b.Id == id); + if (blog != null) + { + return View(blog); + } + return View(); + } + ``` + + +#### 2. 执行删除操作 +- **操作**:再次通过 `id` 查找记录,找到后执行删除。 +- **示例代码**: + ```cs + public IActionResult DeleteOther(int id) + { + var blog = Db.Blogs.FirstOrDefault(b => b.Id == id); + if (blog != null) + { + Db.Blogs.Remove(blog); + } + return RedirectToAction("Index"); + } + ``` + + + +### 视图中的实现 +1. **展示要删除的记录**:页面显示记录的详细信息。 +2. **确认删除**:提供跳转链接,执行实际删除操作。 + ```html + 删除 + ``` +3. **取消操作**:返回首页。 + ```html + 取消删除 + ``` + + + +## 查找功能 +### 视图层实现 +1. **添加搜索框**:在主页视图中加入表单,连接到控制器的 `Index` 方法。 + ```html +
+ + +
+ ``` + +### 控制器逻辑 +1. **处理搜索请求**: + - 判断是否有关键字输入。 + - 如果没有关键字,则显示所有内容。 + - 如果有关键字,则匹配相关数据并返回结果。 + ```cs + public IActionResult Index(string keyword) + { + if (string.IsNullOrEmpty(keyword)) + { + return View(Db.Blogs); + } + else + { + var list = Db.Blogs + .Where(x => x.Title.Contains(keyword) || x.Content.Contains(keyword) || x.Author.Contains(keyword)) + .ToList(); + return View(list); + } + } + ``` +## 作业 +### 1. 查询特定元素 找出数组中等于5的元素 +```cs +var num = numbers.Where(x => x == 5); +``` + +### 2. 查询特定范围的元素 找出数组中在2到8之间的元素。 +```cs +var num = numbers.Where(x => x > 2 && x < 8); +``` + +### 3. 查询并转换元素 将数组中的每个数字乘以2。 +```cs +var num = numbers.Select(x => x * 2); +``` + +### 4. 查询特定属性的对象 找出所有名字以"王"开头的学生。 +```cs +var list = students.Where(x => x.Name.StartsWith('王')); +``` + +### 5. 查询并排序 找出所有年龄大于20岁的学生,并按年龄降序排列 +```cs +var list = students.Where(x => x.Age > 20).OrderByDescending(x => x.Age); +``` + +### 6. 查询并去重 找出数组中所有不重复的数字。 +```cs +var list = numbers.Distinct(); +``` + +### 7. 查询第一个元素 找出数组中第一个大于3的元素 +```cs +var num = numbers.First(x => x > 3); +``` + +### 8. 查询最后一个元素 找出数组中最后一个小于7的元素。 +```cs +var num = numbers.LastOrDefault(x => x < 7); +``` + +### 9. 查询元素是否存在 检查数组中是否存在大于10的元素。 +```cs +var num = numbers.Any(x => x > 10); +``` + +### 10. 查询元素的计数 计算数组中大于5的元素数量。 +```cs +var num = numbers.Count(x => x > 5); +``` + +### 11. 查询元素的总和 计算数组中所有元素的总和。 +```cs +var num = numbers.Sum(); +``` + +### 12. 查询元素的最大值 找出数组中的最大值。 +```cs +var num = numbers.Max(); +``` + +### 13. 查询元素的最小值 找出数组中的最小值。 +```cs +var num = numbers.Min(); +``` + +### 14. 查询元素的平均值 计算数组中所有元素的平均值。 +```cs +var num = numbers.Average(); +``` + +### 15. 查询特定条件的元素 找出数组中能被3整除的元素。 +```cs + var num = numbers.Where(x => x % 3 == 0); +``` \ No newline at end of file -- Gitee