diff --git "a/\351\203\221\345\212\233\350\261\252/20241207--\347\274\226\350\276\221\344\270\216\345\210\240\351\231\244.md" "b/\351\203\221\345\212\233\350\261\252/20241207--\347\274\226\350\276\221\344\270\216\345\210\240\351\231\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..3fff94639e206185111197d6df448c6c7ac32ba8 --- /dev/null +++ "b/\351\203\221\345\212\233\350\261\252/20241207--\347\274\226\350\276\221\344\270\216\345\210\240\351\231\244.md" @@ -0,0 +1,127 @@ +### 删除 +### 1.控制器 +1. 对应删除页面的视图 + + 根据传入的id,查找对应的记录,找到则返回那个元素,找不到返回null + + 如果blog为空,提示元素不存在,反之 就显示元素和信息 + ```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,查找对应的记录 + + 删除操作:`Remove()` + ```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"); + } + ``` +### 2.视图 +1. 显示要删除的东西 +2. 确定删除:对应代码元素 + ```cs + 删除 + ``` +3. 如果不需要删除,返回首页 + ```cs + 取消删除 + ``` +## 查找操作 +1. 在首页视图中添加查找框(以表单的形式),增加`name = Keyword`属性,跟查找内容相连接 + ```cs +
+ ``` +2. 在首页的控制器中填入查询代码: + ```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. 根据传入的Id,从数据库中拿到最新的值 +```cs +var blog = Db.Blog.FirstOrDefault(x=>x.Id == input.Id); +``` +2. 判断是否有对应的对象 + + 找得到,修改对应的对象,然后保存回数据库,返回列表页 + ```cs + if(blog != null) + { + blog.Title = input.Title; + blog.Content = input.Content; + blog.Author = input.Author; + } + ``` + + 找不到,直接返回列表页 + +### 二、控制器中的代码 +1. 对应视图 +```cs +public IActionResult Edit(int id) +{ + var blog = Db.Blog.FirstOrDefault(x=>x.Id == id); + return View(blog); +} +``` +2. post请求 +```cs +[HttpPost] +[ValidateAntiForgeryToken] +public IActionResult Edit(Blog input) +{ + XXX + return View(input); +} +``` +### Linq集成查询 +作用在谁的身上:集合,特别是实现了IEnumerable接口的集合上,方法参数中,一般是Lambda表达式(其实就是匿名函数) +#### 1.查询单个元素 + - First() 函数中可以写查找第一个的条件,形如(t => t.Id==id)。但是如果没有第一个元素,或者没有符合条件的第一个元素,则报错 + - FirstOrDefault() 类似上面的用法,但是在没有符合条件的时候,不报错,而是返回一个null + ``` + var blog = Db.Blog.FirstOrDefault(x=>x.Id == id); + ``` + +#### 2.查询多个元素 + - Where() 条件函数,可以查找符合一定条件(可多个)的元素,返回的是一个集合 + ``` + var blog = Db.Blog.Where(x=>x.Id == id && x.Author == "zzz"); + ``` + +#### 3.重新返回的数据类型 + - Select() 这个函数可帮助我们处理函数返回的真正内容 + ``` + var blog = Db.Blog.Select(x => new { Xyz = x.Id, Abc = x.Author }); + ``` \ No newline at end of file diff --git "a/\351\203\221\345\212\233\350\261\252/20241208--\351\233\206\346\210\220\346\237\245\350\257\242.md" "b/\351\203\221\345\212\233\350\261\252/20241208--\351\233\206\346\210\220\346\237\245\350\257\242.md" new file mode 100644 index 0000000000000000000000000000000000000000..5c0ab45a9150cee19aa8ef2d5c64011395555973 --- /dev/null +++ "b/\351\203\221\345\212\233\350\261\252/20241208--\351\233\206\346\210\220\346\237\245\350\257\242.md" @@ -0,0 +1,74 @@ +### 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 ls = students.Where(x => x.Name.StartsWith('王')); +``` + +### 5. 查询并排序 找出所有年龄大于20岁的学生,并按年龄降序排列 +```cs +var ls = students.Where(x => x.Age > 20).OrderByDescending(x => x.Age); +``` + +### 6. 查询并去重 找出数组中所有不重复的数字。 +```cs +var lsn = numbers.Distinct(); +``` + +### 7. 查询第一个元素 找出数组中第一个大于3的元素 +```cs +var lsn = numbers.First(x => x > 3); +``` + +### 8. 查询最后一个元素 找出数组中最后一个小于7的元素。 +```cs +var lsn = numbers.LastOrDefault(x => x < 7); +``` + +### 9. 查询元素是否存在 检查数组中是否存在大于10的元素。 +```cs +var lsn = numbers.Any(x => x > 10); +``` + +### 10. 查询元素的计数 计算数组中大于5的元素数量。 +```cs +var lsn = numbers.Count(x => x > 5); +``` + +### 11. 查询元素的总和 计算数组中所有元素的总和。 +```cs +var lsn = numbers.Sum(); +``` + +### 12. 查询元素的最大值 找出数组中的最大值。 +```cs +var max = numbers.Max(); +``` + +### 13. 查询元素的最小值 找出数组中的最小值。 +```cs +var min = numbers.Min(); +``` + +### 14. 查询元素的平均值 计算数组中所有元素的平均值。 +```cs +var pin = numbers.Average(); +``` + +### 15. 查询特定条件的元素 找出数组中能被3整除的元素。 +```cs + var lss = numbers.Where(x => x % 3 == 0); +``` \ No newline at end of file