摘要:
一. 排序(orderby ) 1. 说明 用于对查询出来的语句进行排序,orderby 默认是升序的;降序则用 orderby xxx descending。如果是多条件排序,则在orderby后面写多个排序条件,用 逗号 隔开,如果哪个字段是要降序排列,则在它后面加descending。 2. 阅读全文
摘要:
从该节开始,连着三节都讲介绍Linq的各种用法,分类如下图,主要围绕下图进行讲解: 参考文档: 101个例子:https://github.com/lupino3/101-linq-samples-core 官方API:https://docs.microsoft.com/zh-cn/dotnet/ 阅读全文
摘要:
一. CodeFirst模式指令 1.前提: 必须的程序集: Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.Design EF自身的程序集:Microsoft.EntityFrameworkCore Microso 阅读全文
摘要:
一. 基本概念 1.背景 使用 Web API 时,了解其各种方法对开发人员来说可能是一项挑战。 Swagger 也称为OpenAPI,解决了为 Web API 生成有用文档和帮助页的问题。 它具有诸如交互式文档、客户端 SDK生成和 API 可发现性等优点,目前有两种实现方式: (1).Swash 阅读全文
摘要:
一. 基础总结 1.Restful服务改造 Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方法名。 但是我们不喜欢这种方式,所以我们将默认的路由规则 [Route("api/[controll 阅读全文
摘要:
一. 前提 1.安装EF Core连接MySQL的驱动,这里有两类: (1).Oracle官方出品:MySql.Data.EntityFrameworkCore (版本:8.0.17) (2).其他第三方出品:Pomelo.EntityFrameworkCore.MySql (版本:2.2.0) P 阅读全文
摘要:
一. 查询类 EFCore2.x中用 FromSql 方法,EFCore3.x中用 FromSqlRaw 方法,二者使用起来基本一致。 1.说明 A. SQL查询必须返回实体的所有属性字段。 B. 结果集中的列名必须与属性映射到的列名相匹配。 C. SQL查询不能包含关联数据 D. 除Select以 阅读全文
摘要:
一. 相关概念 前面系列中的章节的: 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁、更新锁、排它锁等)和事务隔离级别 介绍了各种锁以及事务的隔离级别,是从数据库的角度进行介绍的,本章节是通过EF Core为载体,介绍事务隔离级别和相关问题,与上述章节有些许重复的内容。 1. 阅读全文
摘要:
一. 说明 EF版本的事务介绍详见: 第七节: EF的三种事务的应用场景和各自注意的问题(SaveChanges、DBContextTransaction、TransactionScope)。 本节主要介绍EF Core下的三种事务的用法和各自的使用场景,其中SaveChanges和DBContex 阅读全文
摘要:
1.说明 和EF版本的并发处理方案一致,需要知道乐观并发和悲观并发的区别,EF Core只支持乐观并发;监控并发的两种方案:监测单个字段和监测整条数据,DataAnnotations 和 FluentApi的两种配置方式。 (PS:EF Core中的并发处理模式和EF中的基本类似,其他相关概念参考: 阅读全文
摘要:
一. 配置相关 1. 数据库连接字符串的写法 (1).账号密码:Server=localhost;Database=EFDB01;User ID=sa;Password=123456; (2).windows身份:Server=localhost;Database=EFDB01;Trusted_Co 阅读全文
摘要:
一. 整体说明 1. 本节用到的表 2. 状态说明补充 ①.Detached: 游离的状态,与数据库没有什么交涉,比如新new一个实体,状态就是Detached。 ②.Added: 增加的状态。 ③.Deleted: 删除的状态。 ④.Modified: 修改的状态。 ⑤.Unchanged: 与数 阅读全文
摘要:
一. 背景 1.前世 提到HttpClient,在传统的.Net版本中简直臭名昭著,因为我们安装官方用法 using(var httpClient = new HttpClient()),当然可以Dispose,但是在高并发的情况下,连接来不及释放,socket被耗尽,然后就会出现一个喜闻乐见的错误 阅读全文
摘要:
一. 简介 关于Session的原理可参照Asp.Net版本Session的文章,去查阅。 1. 普通用法 (1).通过Nuget引入【Microsoft.AspNetCore.Http】程序集,Core Mvc中已经默认引入了,在哪使用using一下即可。 (2).注入Session相关的服务。 阅读全文
摘要:
一. 简介 1. 说明 提到过滤器,通常是指请求处理管道中特定阶段之前或之后的代码,可以处理:授权、响应缓存(对请求管道进行短路,以便返回缓存的响应)、 防盗链、本地化国际化等,过滤器用于横向处理业务,符合Aop思想,它也可以有效的避免代码的重复复制。 在Asp.Net Core中,有5种过滤器,分 阅读全文
摘要:
一. 整体说明 1. 说在前面的话 早在前面的章节中,就详细介绍了.Net FrameWork版本下MVC和WebApi的跨域解决方案,详见:https://www.cnblogs.com/yaopengfei/p/10340434.html ,由于在Core版本中,MVC和WebApi已经合并,所 阅读全文
摘要:
一. 视图缓存 1.对比与区别 Core中的ResponseCache和老版MVC中的OutputCache定位不一样,OutputCache是缓存在服务器内存中的,所以你给一个视图加上标签, 不管几个客户端(浏览器)访问,只有第一个进方法内,在缓存的有效时间里其他客户端都是从缓存中访问,不进实际方 阅读全文
摘要:
一. 整体说明 1. 说明 分布式缓存通常是指在多个应用程序服务器的架构下,作为他们共享的外部服务共享缓存,常用的有SQLServer、Redis、NCache。 特别说明一下:这里的分布式是指多个应用程序服务器,而不是指将Redis或SQLServer部署成分布式集群。 2. 分布式缓存数据有以下 阅读全文
摘要:
1. 整体说明 ASP.NET Core 支持多种不同的缓存,最简单的缓存基于 IMemoryCache,它表示存储在 Web 服务器内存中的缓存,内存缓存可以存储任何对象,存储形式键值对,需要 .net standard 2.0 或者 .Net framework 4.5 或更高版本。 本节主要介 阅读全文
摘要:
一. 各种文件的读取 1.说明 在.Net Core中,各种配置文件的读取都需要依赖【Microsoft.Extensions.Configuration】程序集,当然在Asp.Net Core中已经内置了,然后通过依赖注入IConfiguration configuration对象进行配置文件的相 阅读全文
摘要:
一. 环境相关配置 1. 说明 ASP.NET Core 在应用启动时读取环境变量 ASPNETCORE_ENVIRONMENT, ASPNETCORE_ENVIRONMENT 可设置为任意值,但框架仅支持三个值:Development(开发)、Staging(测试) 和 Production(生产 阅读全文
摘要:
一. 整合Log4net 1. 简单说明 对于log4net 官方的程序集而言,从2.0.7开始就支持.Net Core了,这里我们采用的是2.0.8,虽然好久没更新了,但不影响使用。Core版本与普通的.Net版本下的使用方法非常类似,仅仅多了一步【创建日志仓储对象】CreateRepositor 阅读全文
摘要:
一. Asp.Net Core内置日志 1. 默认支持三种输出方式:控制台、调试(底部输出窗口)、EventSource,当然也可以在Program类中通过logging.ClearProviders();先删除,然后再决定加载哪种输出方式。 2. 创建ILogger对象的两种方式: ①. 通过构造 阅读全文
摘要:
1. 静态文件 MVC中默认开启静态文件中间件(在Configure方法中 app.UseStaticFiles()),即wwwroot目录(即根目录)下的文件均可以访问,eg: http://localhost:5000/img/001.png,其他目录下的静态文件不能访问(eg:MyStatic 阅读全文
摘要:
一. 简介 1.中间件是一种装配到应用管道以处理请求和响应的组件,每个组件可以选择是否把请求传递到管道中的下一个组件、可在管道中的下一个组件的前后执行工作.请求管道中的每一个组件负责调用管道中的下一个组件(或者使管道短路). 经典的管道请求图: 2.当中间件短路的时候,它被称为“终端中间件”,因为它 阅读全文
摘要:
一. 配置的读取 在Asp.Net Core中,有一个 appsettings.json 文件,用于存储相应的配置信息,读取的时,要通过构造函数注入:IConfiguration Configuration,来进行读取。 下面是一段配置文件,我们来对其进行读取: 读取代码: 二. StartUp类 阅读全文
摘要:
一. 简介 Asp.Net Core 部署方式有两种:依赖框架和独立部署。 1. 框架依赖的部署: 顾名思义,依赖框架的部署 (FDD) 依赖目标系统上存在共享系统级版本的 .NET Core。 由于已存在 .NET Core,因此应用在 .NET Core 安装程序间也是可移植的。 应用仅包含其自 阅读全文
摘要:
一. EF简介 1. 定义 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台的数据访问技术,它还是一种对象关系映射器(ORM),它使.NET 开发人员能够使用面向对象的思想处理数据库, 它消除了开发人员通常需要编写大量数数据访问代码的需要。 2. 几点说明 (1) 阅读全文
摘要:
一. 相关概念介绍 1. SSL证书服务 SSL证书服务由"服务商"联合多家国内外数字证书管理和颁发的权威机构、在xx云平台上直接提供的服务器数字证书。您可以在阿里云、腾讯云等平台上直接购买、或者免费获取所需类型的数字证书,并一键部署在云产品中,以最小的成本将您的服务从HTTP转换成HTTPS,实现 阅读全文
摘要:
一. 环境介绍和安装 1. 环境介绍 .Net FrameWork框架:CLR(运行时 仅支持:Windows)、BCL(基础类库 system.dll)、FCL(一些框架,比如:MVC、WPF) .Net Core框架包括:CoreCLR、CoreFx、CLI、Roslyn 四大部分组成。 (1) 阅读全文