From 02b153849dccbd441ccc5195c2e00c320070c247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=A9=E5=86=89?= <3027237339@qq.com> Date: Sun, 15 Dec 2024 20:19:26 +0800 Subject: [PATCH] 1215 --- ...45\346\225\260\346\215\256\345\272\223.md" | 28 ++++++++ ...256\260-Lambda\345\207\275\346\225\260.md" | 67 +++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 "\351\273\204\346\265\251\345\206\211/20241209\347\254\224\350\256\260-\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223.md" create mode 100644 "\351\273\204\346\265\251\345\206\211/20241211\347\254\224\350\256\260-Lambda\345\207\275\346\225\260.md" diff --git "a/\351\273\204\346\265\251\345\206\211/20241209\347\254\224\350\256\260-\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223.md" "b/\351\273\204\346\265\251\345\206\211/20241209\347\254\224\350\256\260-\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000..5399e9a --- /dev/null +++ "b/\351\273\204\346\265\251\345\206\211/20241209\347\254\224\350\256\260-\350\277\236\346\216\245\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,28 @@ +## 连接数据库: + +1. 定义数据库模型 +```cs +using Microsoft.EntityFrameworkCore; +namespace Blogs.Models; + +public class BlogDbContext : DbContext +{ + public BlogDbContext(DbContextOptions options) : base(options) + { + } + public DbSet Blogs { get; set; } = null!; +} +``` + +2. 在Program.cs文件中添加连接数据库语句,以及执行操作代码 +```cs +var connectionString = $"Server=.;Database=MdBlog;uid=sa;pwd=123456;TrustServerCertificate=true"; + +builder.Services.AddDbContext(opt => +{ + opt.UseSqlServer(connectionString); +}); +builder.Services.AddScoped(); + + +``` diff --git "a/\351\273\204\346\265\251\345\206\211/20241211\347\254\224\350\256\260-Lambda\345\207\275\346\225\260.md" "b/\351\273\204\346\265\251\345\206\211/20241211\347\254\224\350\256\260-Lambda\345\207\275\346\225\260.md" new file mode 100644 index 0000000..17ea1d1 --- /dev/null +++ "b/\351\273\204\346\265\251\345\206\211/20241211\347\254\224\350\256\260-Lambda\345\207\275\346\225\260.md" @@ -0,0 +1,67 @@ +# MVC中LINQ查询 + +## 1. LINQ简介 + +LINQ(Language Integrated Query,语言集成查询)是微软为.NET Framework提供的一种查询技术,允许开发者在C#等语言中直接使用类似SQL的语法进行数据查询和操作。LINQ支持多种数据源,包括集合、数据库、XML等,并提供统一的查询语法。 + +## 2. LINQ查询的基本语法 + +### 2.1 查询表达式语法 + +LINQ查询表达式语法类似于SQL,常见结构如下: + +```csharp +var query = from item in dataSource + where condition + orderby item.Property ascending/descending + select item; +``` + +- **from**: 指定数据源和范围变量。 +- **where**: 过滤数据,返回满足条件的元素。 +- **orderby**: 对结果进行排序,可以指定升序(ascending)或降序(descending)。 +- **select**: 定义查询结果的形状或类型。 + +### 2.2 方法语法 + +方法语法使用扩展方法和Lambda表达式,常见方法包括: + +- **Where**: 过滤数据。 +- **Select**: 投影数据。 +- **OrderBy**: 排序数据。 +- **GroupBy**: 分组数据。 + +示例: + +```csharp +var query = dataSource.Where(item => item.Property > 10) + .OrderBy(item => item.Property) + .Select(item => item.Property); +``` + +## 3. LINQ查询操作符 + +### 3.1 常用操作符 + +- **Where**: 用于筛选数据。 +- **Select**: 用于选择和转换数据。 +- **OrderBy**: 用于排序数据。 +- **GroupBy**: 用于分组数据。 +- **Join**: 用于连接多个数据源。 + +### 3.2 聚合操作符 + +- **Sum**: 计算总和。 +- **Average**: 计算平均值。 +- **Count**: 计算元素数量。 +- **Max** 和 **Min**: 查找最大值和最小值。 + +## 4. LINQ查询的执行 + +### 4.1 延迟执行 + +LINQ查询默认采用延迟执行(Lazy Evaluation),即查询在定义时不立即执行,而是在迭代结果时才执行。这有助于提高性能,尤其是在处理大数据集时。 + +### 4.2 立即执行 + +可以使用诸如 `ToList()`, `ToArray()`, `Count()` 等方法来强制立即执行查询。这些方法会遍历查询结果并生成一个新的集合。 \ No newline at end of file -- Gitee