自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (6)
  • 收藏
  • 关注

原创 JavaScript中的Lexical Environment

本文主要介绍JavaScript中的一个重要概念Lexical Environment,它可以帮助我们解释我们为什么可以通过嵌套方法,共享数据,以及为什么可以在函数中定义一个和全局变量同名的变量,并且不会影响到全局变量。

2024-03-22 14:13:18 716

原创 JavaScript中的Hoisting

下面的代码并不会报错,可以正常执行。var a = 0;代码最后执行结果是打印undefined。我们讨论一下代码背后的原因。首先, 创建JS Engine会创建GEC;然后, 代码在GEC中执行。此时,a的值就是undefined,所以打印出来的也是undefined。我们打开浏览器通过断点执行,可以看到同样的执行结果。因为a变量在最高的代码层级上,通过var被定义,所以在创建GEC的时候,会先将它赋值为undefined,后面根据代码的执行,再进行其它赋值。

2024-03-14 15:46:09 372

原创 Javascript的Execution Context

本文主要通过一个实例,来理解什么是Javascript中的Execution Context,以及在JavaScript执行过程中,Execution Context是如何工作的。

2024-03-14 14:33:59 1061 1

原创 EF Core中带过滤器参数的Include方法

本文主要介绍EF Core 5.0中一个新特性,就是Include方法支持带过滤器的委托参数,并且说明一下该特性在实际使用中的一个大坑,希望读者在未来的开发中避免踩坑。

2023-10-26 22:15:01 1404

原创 一个Entity Framework Core的性能优化案例

本文提供一个EF Core的优化案例,主要介绍一些EF Core常用的优化方法,以及在优化过程中,出现性能反复的时候的解决方法,并澄清一些对优化概念的误解,例如AsNoTracking并不包治百病。

2023-10-25 17:59:31 1276

原创 EF Core 批量插入操作原理分析

本文主要讨论EF Core 在批量添加操作的基本原理和优化方式,基本原理主要针对EF Core 6.0 和7.0两个版本。

2023-10-18 18:05:02 1126

原创 EF Core 7.0 新特性之批量修改

EF Core 7.0 提供了一个可以将LINQ查询和批量修改相结合的方法ExecuteUpdate。由于数据修改是以批量更新的方式完成,所以可以减少数据库的往返次数。本文将主要介绍ExecuteUpdate的使用方法。

2023-10-16 18:08:13 2014

原创 EF Core中的拆分查询策略

从EF Core 5.0中,引入了拆分查询策略,该策略可以显著的提升多表查询的效率。本文主要介绍该策略的使用场景和基本使用方法。

2023-10-13 12:35:32 714

原创 解决ASP.NET Core的中间件无法读取Response.Body的问题

本文主要介绍如何在ASP.NET Core的中间件中,读取Response.Body的方法,以便于我们实现更多的定制化开发。本文介绍的方法适用于.Net 3.1 和 .Net 6。

2023-10-04 12:35:41 2020 2

原创 C#中的IQueryable vs IEnumerable (二)

IQueryable 的主要作用是通过其扩展方法和调用过程中使用的委托参数,将这些内容转换成表达式目录树。第三方的ORM框架可以在此基础上进行SQL语句的转换。

2023-09-11 18:28:20 1003 1

原创 C# Linq源码分析之Take(五)

本文在的基础上继续从源码角度分析Take的优化方法,主要分析Where.Select.Take的使用案例。

2023-09-06 15:31:36 899

原创 C# Linq源码分析之Take(四)

本文主要对Take的优化方法进行源码分析,分析Take在配合Select,Where等常用的Linq扩展方法使用时候,如何实现优化处理。本文涉及到Select, Where和Take和三个方法的源码分析,其中Select, Where, Take更详尽的源码分析,请参考我之前写的文章。

2023-08-28 14:25:28 1064

原创 C# Linq源码分析之Take (三)

本文在前两篇Take源码分析的基础上,着重分析Range参数中有倒数的情况,即分析TakeRangeFromEndIterator的源码实现。

2023-08-18 17:33:55 465

原创 C# Linq源码分析之Take (二)

本文主要分析Linq中Take带Range参数的重载方法的源码。

2023-08-17 15:44:05 754

原创 C# Linq源码分析之Take (一)

新的Take重载方法不再接收整数参数,而是接收一个Range类型的参数。它可以从序列中返回指定范围的连续元素。注意:该方法只能在.Net 6 或更高版本中使用,我们之前用的.Net 4.7, 4.8或.Net Core 3.1中,都不支持该方法。

2023-08-14 15:26:06 987

原创 C# Linq源码分析之Take方法

基本功能是从序列source中,返回指定个数count的相邻元素。

2023-08-11 16:44:06 1816

原创 C# 中使用ValueTask优化异步方法

我们在开发过程中,经常使用async的异步方法,但是有些时候,异步的方法中,可能包含一些同步的处理。本文主要介绍通过ValueTask这个struct,优化异步处理的方法性能。

2023-08-01 14:22:34 608

原创 C#中 使用yield return 优化大数组或集合的访问

我们在开发过程中,经常需要在一个很大的数组或集合中搜索元素,以满足业务需求。本文主要介绍通过使用yield return的方式,避免将大量数据全部加载进入内存,再进行处理。从而提高程序的性能。

2023-07-31 13:58:10 418

原创 浅谈C#中await运算符在不同类型应用中的不同行为

C#中的await运算符,因其不会阻塞主线程,可以给用户更好的操作体验,所以广泛的应用于各种C#的应用中。本文主要分析其在Console程序,Winform程序和WebApi程序中,其工作行为的异同点,来更好的使用该运算符。

2023-07-24 18:04:58 475

原创 SQL Server中如何将累积数值拆解

本文通过一个计算汽车每日里程数的例子,展现如何通过汽车每日的总里程数,来计算汽车每日的里程数。

2023-07-04 17:56:00 617

原创 如何在SQL Server中实现Ungroup操作

我们经常在SQL Server中使用group by语句配合聚合函数,对已有的数据进行分组统计。本文主要介绍一种分组的逆向操作,通过一个递归公式,实现ungroup操作。

2023-06-30 12:17:27 1403 1

原创 一道SQL Server窗口函数的面试题

本文介绍一道和SQL Server窗口函数相关的面试题,主要涉及窗口函数的原理和Framing参数的设置。

2023-06-20 12:51:15 1229

原创 SQL Server 中count方法和case when语句配合使用中的问题

我们在使用SQL Server生成报表统计数据的时候,经常使用sum,count等聚合函数,有时候还会配合case when语句一边执行过滤操作,一边进行聚合。本文介绍一个在使用中的常见的错误和解决方法。

2023-06-14 13:07:49 1523

原创 基于原生Javascript的放大镜插件的设计和实现

本文主要介绍一个前端放大镜插件的设计和实现,该插件可以将图片的指定区域进行局部放大,插件运行不依赖任何第三方库,可以在Chrome或Edge的常见版本上运行。

2023-03-24 17:00:08 881 1

原创 基于原生Javascript的Carousel设计及实现

本文主要介绍一个无缝轮播图的基本设计原理和实现方式,该轮播图不依赖任何第三方插件或组件库,可以在常用的Chrome或Edge浏览器上正常运行。

2023-03-24 11:01:25 751 1

原创 一道关于Vue的数据绑定和依赖收集的面试题

分享一道Vue的面试题,该题涉及Vue的响应式数据绑定和依赖收集,希望可以加深大家对Vue原理的理解

2022-12-12 17:29:47 2023 1

原创 JS中数组和树型数据的相互转化

在前后端分离的开发工作中,我们经常从后端的WebAPI中获取到1维数据,前端需要将这些数据转换为树型结构。例如多级菜单数据,我们需要通过id和pid等栏位,将1维数组数据转换成一个树型结构,然后再进行页面渲染。本文主要介绍两个JS方法,方便我们将数组转换成树,或将树形结构转换成1维数组。

2022-10-31 15:55:30 1017

原创 draggable 和 sortable的JS原生实现

本文主要利用html 5的draggable原生特性,实现一个可拖拽的效果。我们可以创建包含多个页面节点的容器,每个容器可以包含多个节点。通过拖拽,可以移动一个容器内的节点到其他容器,每个容器内的节点和以通过拖拽改变排列顺序。

2022-10-24 09:13:10 1343

原创 Vuex 4.x 模拟实现

本文参照vuex 4的基本功能,模拟实现了其主要功能,并提供了关键的代码。本文是在Vue 3.0上通过其Composition API模拟Vuex 4.0的基本功能。

2022-09-08 17:23:00 392

原创 解决结构赋值中函数的this指向问题

我们在开发中经常使用解构赋值,这样可以使我们的代码显得更加精简,清晰,但是它同样面临this指向出错的问题。

2022-09-02 16:01:24 665

原创 介绍一种在Vue 3.0 下封装第三方插件的方法

Vue在升级到3.0之后,我们不能再按照2.0的方式,在其原型链上封装第三方的插件对象。本文仿照Vuex的使用方法,结合Vue3.0的Composition API,实现一种在Vue 3.0下封装第三方插件的方法。

2022-08-28 12:06:45 1162

原创 一种文件切片上传策略

本文介绍一种文件切片上传策略,以应对项目开发中的可能遇到的大文件上传的需求。客户端采用Vue 3.0,服务器端提供Express和Asp.Net Core两种实现。

2022-08-23 17:25:28 613

原创 SQL Server中的STRING_SPLIT函数的实现

SQL Server在2016版本中支持了STRING_SPLIT方法,可以将字符串按照分隔符,切割成一个数据表,使用非常方便。但是SQL Server 2016之前的版本没有这个方法。本文通过SQL Server的自定义方法实现该方法。

2022-07-20 15:49:40 2975

原创 C# LINQ源码分析之ToList()

在开发过程中,LINQ的ToList()方法经常被使用,帮助我们将将迭代器转换为具体的List对象。为了更好的了解该方法的工作原理,我们从源码的角度对其进行分析。

2022-07-12 17:32:24 5406 1

原创 C# LINQ源码分析之Count

LINQ代码库中的Count方法作为数据统计的关键方法,经常被使用。在统计数据时候,Count方法是否每次都要遍历整个序列来获取序列元素个数,Count方法内容是否存在优化机制。为了更好的了解该方法的工作原理,我们从源码的角度对其进行分析。......

2022-07-04 16:07:05 3666 1

原创 SQL Server - Window Function - 解决连续N条记录过滤问题

我们在开发应用系统处理各种报表的时候,有时候会遇到统计连续几天温度低于0度,一天内连续登录系统多次的类似需求。本文主要介绍如何利用SQL Server中的窗口函数,来解决这些复杂的查询问题。本文将通过两个实例来进行具体阐述。建表语句如下:登录记录表包含登录Id,用户名和登录日期,其中login_id 是主键。数据初始化代码见附录。我们需要统计在一天内连续登录三次或三次以上的人员的用户名和日期。连续即登录Id连续。代码如下:避免嵌套查询,定义一个 DIPICATE_3的CTE。该CTE主要是生成一个标记

2022-06-19 17:59:00 277

原创 SQL Server - Window Function - 分析函数

本文主要介绍分析窗口函数的使用方法,通过获取相邻两个股票交易日收盘价例子,来介绍分析窗口函数在获取相邻值的用法。

2022-06-09 15:34:46 649

原创 SQL Server - Window Function - 聚合函数和Framing

窗口聚合函数本身具有极高的灵活性,在数据库开发过程中,可以满足一些复杂的查询需求。本文主要以举例说明的方式,来介绍聚合窗口函数的使用方法,以及性能调优。

2022-06-04 19:04:41 405

原创 ASP.NET Core 如何自动完成数据迁移

我们在进行ASP.NET Core开发过程中,经常要面对一个问题,就是开发完成后,需要在测试,生产环境搭建同样站点。而数据库的搭建又是站点搭建中最麻烦的一个环节。本文介绍一种方法,可以直接在站点启动的时候,自动完成数据库的搭建和数据的初始化操作。

2022-05-30 14:50:52 772

原创 ASP.NET CORE Web API版本管理工具

本文介绍一个ASP.NET CORE Web API版本管理工具,以方便我们在开发过程中,针对不同的开发版本,进行管理。

2022-05-10 12:29:56 615

介绍一个无缝轮播图的基本设计原理和实现方式,该轮播图不依赖任何第三方插件或组件库,可以在常用的Chrome或Edge浏览

轮播图可以自动播放 轮播图可以手工切换到指定页面 实现无缝轮播,最后一张播完后,自动切换到第一张 用户可以配置轮播图的起始播放页和每页的播放时间 用户鼠标进入播放区域,播放暂停 用户鼠标离开播放区域,播放开始

2023-03-24

ExpressionTreeApp-updated.zip

C# 动态Where配合EFCore 源码C# 1. 支持的查询字段类型包括数字,字符串,日期,枚举和布尔: * 数字类型查询支持大于,小于,等于,大于等于,小于等于的比较操作 * 字符串类型查询支持等于,包含,以指定字符开头或结尾的比较操作 * 日期类型查询支持大于,小于,等于,大于等于,小于等于的比较操作 * 枚举和布尔类型查询支持等于的比较操作 2. 支持多个条件按照And或Or关系的组合查询,And为默认组合方式 3. 支持数字,字符串,日期,枚举和布尔类型的否定查询

2021-02-02

ExpressionTreeApp.zip

根据URL动态创建查询表达式

2021-01-27

C#委托及事件的Demo代码

C#委托及事件的Demo代码

2020-12-15

Bootstrap在老旧站点升级中的应用Demo

Bootstrap在老旧站点升级中的应用Demo,

2020-12-04

POWERPOINT 更好的表达您的POINT

POWERPOINT 更好的表达您的POINT!转为解决您的这些疑惑而设计,转为优化您的幻灯片创意与制作而存在。在此课程中,我们将从幻灯片设计与制作的全过程,进行讲解。

2018-09-22

空空如也

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

TA关注的人

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