自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 ASP.NET Core8.0学习笔记(十九)——EF Core DbSet

1.DbSet提供了通过DbContext对表进行查询操作的路径。DbSet对应的属性名称将默认映射为实体T的表名。2.使用DbSet进行查询的方法:(1)直接在DbContext中创建对应的DbSet属性(2)使用DbSet DbContext.Set方法操作数据表。3.在DbSet中对于数据对象进行的任何操作,都将保存在内存中,只有当SaveChanges()方法被调用时,才会将数据变化提交给数据库。

2024-09-23 10:09:41 760

原创 ASP.NET Core6.0/8.0学习笔记(十八)——索引配置

1.使用索引可以使得基于列(或一组列)的查找更加高效2.索引的分类:聚集索引、非聚集索引(1)聚集索引是物理索引,索引顺序与物理存储顺序一致;基于数据行的键值(2)非聚集索引是逻辑索引,索引顺序与物理顺序不一致。具有完全独立于数据行的结构(3)唯一索引:用作索引的字段中各个数据必须是唯一的,不得重复(相当于普通索引加一层唯一性约束)3.一个表中可以有多个非聚集索引,但是聚集索引只能有一个。因此在建立聚集索引时一定要确保表中没有多余的聚集索引。

2024-08-18 22:20:33 229

原创 ASP.NET Core 6.0/8.0学习笔记(十七)——Fluent API主键配置

使用Guid类型做主键的时候,不能把主键设置为聚集索引。:默认约束指定在插入操作中如果没有提供输入值时,系统会自动指定插入值,即使该值是NULL;当必须向数据表中加载一行数据但不知道某一列的值,或该值尚不存在,此时可以使用默认值约束。例如,新建一个Bird类,在这个类中有Id、Name、Number三个属性,默认主键字段为Id。:检查约束对输入列或者整个数据表中的值设置检查条件,以限制输入值,保证数据库数据的完整性。1.默认主键:根据约定,字段名为“Id”或“类名/表名”+Id将被配置为实体的主键。

2024-07-27 11:55:07 410

原创 ASP.NET Core6.0/8.0学习笔记(十六)——EF Core配置方式以及表与属性的配置

(4)名字为Id的属性为主键,如果主键为short,int或者long类型,则默认采用自增字段,如果主键为Guid类型,则默认采用默认的Guid生成机制生成主键值。(3)配置类中的代码也可以写入DemoDbContext类(数据库上下文类)中,但是表一多,代码就会很多,这个类就会显得臃肿。例如:我想让Book这个实体类中存在一个名为Age的属性,但是不需要对数据库进行修改,可以在配置类中使用这个方法。(2)数据表列的名字采用实体类属性的名字,列的数据类型采用和实体类属性类型最兼容的类型。

2024-07-24 09:59:58 672

原创 ASP.NET Core 6.0/8.0学习笔记(十五)——DbContext详解

详细阐述了在EntityFramework Core中DbContext的使用以及其他注意事项

2024-06-19 10:06:15 1361

原创 ASP.NET Core 6.0/8.0学习笔记(十四)——使用EF Core实现基本增删改查

使用EntityFramework完成最基本的增删改查操作

2024-06-16 22:54:26 730

原创 ASP.NET Core 6.0/8.0学习笔记(十三)——ORM/EF Core概述与开发环境搭建

简要介绍了以下内容,包括:ORM的概念、EntityFramwork Core的概念以及开发环境搭建、常见问题处理等

2024-06-15 16:38:24 1909

原创 ASP.NET Core 6.0/8.0学习笔记(十二)——服务的生命周期

服务的本质就是一个或一组被DI容器管理的对象,每一次应用程序都要从DI容器中请求这个对象;服务的生命周期其实就是研究这个对象在容器中被请求时返回的究竟是什么样的对象。所有的可能性一共三种:(1) 无论在哪里请求,容器提供的都是一个全新的对象(2)无论在哪里请求,容器提供的都是不变的同一个对象(3)只有在同一个区域请求,容器才会返回同一个对象,不同的区域返回的是不同的对象以上三种可能性,分别对应服务的瞬时(Transient)、单例(Singleton)以及范围(Scope)生命周期。

2024-06-12 15:32:31 523

原创 ASP.NET Core 6.0/8.0学习笔记(十一)——.NET中的DI与服务注册

(先将所有要注册的服务对象放到这个ServiceCollection集合中)调用ServiceCollection的BuildServiceProvider()创建的ServiceProvider对象,可以获取到BuildServiceProvider()之前ServiceCollection中的对象,也就是为业务逻辑所提供的对象。3.服务容器:负责管理注册的服务(把准备好的实体类、方法等添加到这里,由容器进行接管)2.注册服务:提前准备好那些服务(例如实体类、方法的实现等等)添加到服务容器中。

2024-06-07 09:31:54 325

原创 ASP.NET Core6.0/8.0学习笔记(十)—依赖注入概述

最重要的不同:不需要程序员去手动管理各种对象,只要这个对象符合某个标准即可(比如说电压是220V),框架会自动给用户接入220V的电,而不用在接电时去关心这个电是怎么来的。我需要获取一个对象A,或者是完成某一个固定逻辑A,这个对象A的创建需要对象B、C、D、E的参与并调用对应的API来完成创建。(1)类库:直接提供对应的API,整个流程由程序员在自己的应用中手动编码完成,包括B、C、D、E对象的创建以及API的调用。1.什么是依赖:若在一个类A的成员中使用了另一个类B的对象,则称类B是A的依赖项。

2024-06-05 14:27:42 1575

原创 ASP.NET Core6.0学习笔记(九)——Enumerable

1.Enumerable是“序列”。它与集合是两个概念。LINQ中所有的内容都是针对于某一元素序列执行操作。2.在LINQ中,其核心思想就是“如何生成序列的下一项”——创建一个枚举器,获取输入并创建枚举3.LINQ的工作机制:“流式处理”——从集合中逐个拿取数据并执行对应的操作。若碰到Where等语句,不符合条件的数据将不会被拉取到内存当中,提升性能。保证了LINQ不会因为过大的数据量而崩溃。流式处理运算符将持续读取源元素直到可以生成结果元素。这意味着可能要读取多个源元素才能生成一个结果元素。

2024-06-04 10:54:49 823

原创 ASP.NET Core 6.0学习笔记(八)—LINQ查询语法

注意:在LINQ中,内连接与左外连接的区别就是DefaultIfEmpty()方法,内连接遇到Empty会直接不返回这条数据,但是在左外连接中会需要返回对应的数据;注意,在原始数据中,Category中CategoryId为4的数据以及Product中CategoryId为7的数据没有匹配,所有没有出现在结果集当中。唯一的区别在于组连接在内连接的基础上添加了into关键字,将连接后的数据按照第一个表数据进行分组。左外连接与组连接的区别是在组连接的into的基础上添加了DefaultIfEmpty方法。

2024-06-03 14:51:13 360

原创 ASP.NET Core6.0学习笔记(七)—降维投影SelectMany

这两个函数的参数的意义同前。将序列中的每一个元素按照selector指定的函数投影到到IEnumerable中,然后对于IEnumerable中的每一个元素,都执行第三个参数指定的函数,并将执行函数后返回的结果组合为一个简单的一维序列返回。将序列中的每一个元素映射到IEnumerable中,并能够额外接收一个int型参数index,即当前元素的索引值,并将索引值与序列作为参数执行第二个参数所指定的函数,返回最终结果。应用场景2:将集合中的每个元素映射为一个集合,并将这些映射后的集合合并为一个新的集合。

2024-05-31 10:15:46 915

原创 ASP.NET Core6.0学习笔记(六)—LINQ投影函数Select

1.Select()方法用于对数据进行查询,参数为Lambda表达式,可以将某一集合中的某些项提取出来,经操作后组合成新的集合。IEnumerable 集合对象.Select((x,index)=>Lambda expression)IEnumerable 集合对象.Select(x=>Lambda expression)数据库上下文对象名(集合).表名.Select(Lambda expression)对象名=>new(别名1=对象名.列名1,别名2=对象名.列名2……

2024-05-30 15:41:38 453

原创 ASP.NET Core 6.0学习笔记(五)—LINQ排序与分组

1.数据分组的API:IEnumerable GroupBy(Lambda expression) :分组所需参数为Lambda表达式,返回值是IEnumerable ,即返回值是分完之后的组(IGrouping)所构成的集合(IEnumerable)。1.在LINQ中,可以根据多个条件依次进行排序,例如,根据Salary字段升序排序后,又按照Age字段降序排序。

2024-05-29 11:36:07 781

原创 ASP.NET Core 6.0学习笔记(B站杨中科版)(四)—LINQ筛选与查询

1.方法声明:IQueryable WhereIf(this IQueryable source,bool condition,Expression predicate)2.参数:(1)this IQueryable source:扩展方法所在类型(2)bool condition:执行条件,若为真执行后面的predicate表达式,反之不执行。

2024-05-28 09:51:00 1779

原创 ASP.NET Core 6.0 学习笔记(B站杨中科版)(三)—LINQ简介

其中,Where(Lambda expressiom)是一个扩展方法,它扩展了数组与集合中的相关方法。该方法会遍历数组中的每个元素,并调用a=>a>4表达式来判断表达式的结果是否为true。若为true,则返回这个元素。2.LINQ的背景:LINQ到底做了什么——手动实现LINQ。1.目的:使得数据处理“傻瓜化”需求:取出数组中所有大于4的数。

2024-05-27 15:33:26 226

原创 ASP.NET Core 6.0 学习笔记(B站杨中科版)(二)

一、 为什么要使用异步编程本质:IO跟不上CPU,拖慢程序运行进程关键字:async await上面两个关键字只是编译器功能,编译器会使用Task类创建代码。若不使用这两个关键字,则使用Task类也可以完成相关功能注:异步不等于多线程二、async、await的基本使用异步方法什么是异步方法:通常是借助于线程或任务,在后台运行的方法,并不会阻塞调用线程。通俗来说就是异步方法借助这两个关键字格外开了一个线程去执行方法体内的代码。

2023-08-27 22:06:14 239

原创 ASP.NET Core 6.0 学习笔记(B站杨中科版)

引入NuGet包,实际上就是引入外部的.dll文件。微软提供的NuGet平台可以引入在.NET 平台上发布的.dll,也就是“NuGet程序包”,可以有效解决.dll版本不匹配等相关问题,提升开发体验该功能类似于JavaScript的npm与Java的Maven。

2023-08-26 22:10:59 373

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除