From c14797369e1df49e53caec75a8e099c3f7fb9092 Mon Sep 17 00:00:00 2001 From: l y Date: Sun, 15 Dec 2024 20:20:58 +0800 Subject: [PATCH] =?UTF-8?q?20241212=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20241209-\347\254\224\350\256\260.md" | 56 +++++++++ .../20241212-\347\254\224\350\256\260.md" | 113 ++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 "\344\275\231\344\270\275/20241209-\347\254\224\350\256\260.md" create mode 100644 "\344\275\231\344\270\275/20241212-\347\254\224\350\256\260.md" diff --git "a/\344\275\231\344\270\275/20241209-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241209-\347\254\224\350\256\260.md" new file mode 100644 index 0000000..5a7b3e9 --- /dev/null +++ "b/\344\275\231\344\270\275/20241209-\347\254\224\350\256\260.md" @@ -0,0 +1,56 @@ +## 连接数据库步骤 +1.安装依赖包,命令:dotnet add package Microsoft.EntityFrameworkCore.SqlServer +2.定义数据库表模型 +在Models中的Blogs.cs中 + +``` +namespace Blog.Models; + +public class Blogs +{ + public int Id { get; set; } + public string Title { get; set; } = null!; + public string Content { get; set; } = null!; + public string Author { get; set; } = null!; +} +``` +3.定义数据库上下文 +``` +在Models中创建 BlogDbContext.cs文件 +using Microsoft.EntityFrameworkCore; + +namespace Blog.Models; + +public class BlogDbContext : DbContext +{ + public DbSet Blogs { get; set; } = null!; + + + // The following configures EF to create a Sqlite database file in the + // special "local" folder for your platform. + protected override void OnConfiguring(DbContextOptionsBuilder options) + => options.UseSqlServer($"Server=SK-20240829DIVS\\SQLEXPRESS;database=Blog4;uid=sa;pwd=123456;TrustServerCertificate=True;"); +} +``` +4.生成迁移文件,命令:dotnet ef migrations add XXX (PS:可能需要安装如下依赖包:Microsoft.EntityFrameworkCore.Design) +``` +dotnet tool install -- global dotnet-ef +dotnet add package Microsoft.EntityFrameworkCore.Design +dotnet ef migration add InitialCreate +``` +到这里要先在文件Blog.csproj中出现 + +``` + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + +``` + +5.将上一步生成的迁移文件,更新到数据库:dotnet ef database update +dotnet ef database update (PS:需要保证连接字符串正确无误,包括用户名、密码等,数据库打开,并且允许远程连接) + +结束后,在文件夹中会出现Migrations文件,就可以在数据库中看到你保存的数据 \ No newline at end of file diff --git "a/\344\275\231\344\270\275/20241212-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241212-\347\254\224\350\256\260.md" new file mode 100644 index 0000000..b31df1e --- /dev/null +++ "b/\344\275\231\344\270\275/20241212-\347\254\224\350\256\260.md" @@ -0,0 +1,113 @@ +## linq查询初级 + +``` +using System.Linq; +using Microsoft.AspNetCore.Mvc; +using Vlog.Models; +namespace Vlog.Controllers; +public class OneController : Controller +{ +public dynamic One() +{ + //查询特定元素 找出数组中等于5的元素。 + int[] numbers = { 1, 2, 3, 4, 5, 6 }; + var first = numbers.Where(n => n==5).ToList(); + return first; + +} +public dynamic Two(){ + //查询特定范围的元素 找出数组中在2到8之间的元素 + int[] numbers = { 1, 2, 3, 4, 5, 6 }; + var second = numbers.Where(n => n>2 && n<8).ToList(); + + return second; + +} +public dynamic Three(){ + //查询并转换元素 将数组中的每个数字乘以2。 + int[] numbers = { 1, 2, 3, 4, 5, 6 }; + var third = numbers.Select(n =>n*2).ToList(); + + return third; + +} +public dynamic Four(){ + //所有名字以"王"开头的学生。 + +List students = new List +{ + new Student {Id=1, Name = "王有才", Age = 21 }, + new Student {Id=2, Name = "王中王", Age = 22 }, + new Student {Id=3, Name = "张语嫣", Age = 23 }, + new Student {Id=4, Name = "詹宇航", Age = 35 }, + new Student {Id=5, Name = "郑雨良", Age = 26 }, +}; +var four = students.Where(n => n.Name.StartsWith("王")).ToList(); + return four; + +} +public dynamic Five(){ + //查询并排序 找出所有年龄大于20岁的学生,并按年龄降序排列。 + + List students = new List +{ + new Student {Id=1, Name = "王有才", Age = 21 }, + new Student {Id=2, Name = "罗婷", Age = 21 }, + new Student {Id=3, Name = "王中王", Age = 22 }, + new Student {Id=4, Name = "李子柒", Age = 22 }, + new Student {Id=5, Name = "张语嫣", Age = 23 }, + new Student {Id=6, Name = "詹宇航", Age = 35 }, + new Student {Id=7, Name = "郑雨良", Age = 26 }, + new Student {Id=8, Name = "欧文", Age = 26 }, +}; +var five = students.Where(n => n.Age>20).OrderByDescending(s => s.Age).ToList(); + return five; + +} +public dynamic Six(){ + //查询并去重 找出数组中所有不重复的数字 + + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + var six = numbers.Distinct().ToList(); + return six; +// Distinct() 方法的工作原理如下: + +// 1.它遍历整个集合。 +// 2.它检查每个元素是否已经存在于结果集中。 +// 3.如果元素不存在,则将其添加到结果集中。 +// 4.如果元素已经存在,则忽略它,不添加到结果集中。 +} +public dynamic Seven(){ + //查询第一个元素 找出数组中第一个大于3的元素。 + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + var seven = numbers.FirstOrDefault(n =>n>3); + + return seven; + +} +public dynamic Eight(){ + //查询最后一个元素 找出数组中最后一个小于7的元素。 + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + var eight = numbers.LastOrDefault(n =>n<7); + + return eight; + +} +public dynamic Nine(){ + //查询元素是否存在 检查数组中是否存在大于10的元素 + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + bool nine = numbers.Any(n => n > 10); + //Any() 方法用于检查数组 numbers 中是否存在任何元素满足条件 + return nine; + +} +public dynamic Ten(){ + //查询元素的计数 计算数组中大于5的元素数量 + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + int ten = numbers.Count(n => n > 5); + + return ten; + +} +} +``` \ No newline at end of file -- Gitee