1.AppUser
解析:public class AppUser : Microsoft.AspNetCore.Identity.IdentityUser, IAppUser
2.UserManager、RoleManager和SignInManager
解析:
[1]UserManager是对用户进行管理
[2]RoleManager则是针对角色
[3]SignInManager则是对登录和认证进行管理的。
3.DbContext
解析:DbContext是负责数据与对象互操作的主要的类型。
[1]EntitySet:DbContext包含所有从数据库表中被映射出来的实体对象的集合(如DbSet<TEntity>)。
[2]Querying:DbContext将LINQ To Entities转化为SQL查询语句并发送至数据库。
[3]ChangeTracking:它保持变更追踪,一旦实体对象发生改变它就会从数据库中进行查询。
[4]PersistingData:它也可以基于实体状态对数据库进行插入,更新和删除操作。
[5]Caching:DbContext默认作一级缓存,它存储在上下文类的生命周期中检索过的实体对象。
[6]ManageRelationship:在DB-First或Model-First中DbContext使用CSDL、MSL和SSDL管理关系,在Code-First中使用流式API管理关系。
[7]ObjectMaterialization:DbContext将原始的表数据转化至实体对象中。
4.Microsoft.AspNetCore.Identity名字空间
解析:Microsoft.AspNetCore.Identity名字空间
5.Identity和IDS4区别
解析:
[1]ASP.NET Core Identity提供了一个用来管理和存储用户账户的框架。
[2]IdentityServer是一个中间件,它可以添加符合OpenID Connect和OAuth2.0的终端[endpoints]到一个任意的ASP.NET Core应用。
6.ABP vNext权限验证和定义
解析:ABP vNext关于权限验证和权限定义的部分,都存放在Volo.Abp.Authorization和Volo.Abp.Security模块内部。
7.async/await
解析:
[1]async/await是用来进行异步调用的形式,内部其实还是采用线程池进行管理。
[2]只要涉及IO操作[比如访问数据库,调用Web API],就要尽可能使用async/await。
8.UnitOfWork.GetAll<XXX>().Include(b => b.YYY)
解析:在查询结果中包含相关的实体。
9…NET Core技术架构体系
解析:
说明:用户管理,角色管理,单点登录,灵活授权,实体权限,导出报表,微信集成,支付宝集成,定时任务,代码生成,性能探测,数据迁移,通用分页,模型映射,链式验证,依赖注入,缓存管理,异常处理,日志跟踪,多语言支持,可定制主题,无限级导航。
10.IIS配置与管理
解析:IIS配置与管理
11.迁移工具命令
解析:
12.Fluent API和Data Annotations关系
解析:
[1]Fluent API是一种配置领域类的方法,它比Data Annotations特性提供更多的配置方法
[2]Fluent API需要写在DbContext中的OnModelCreating方法中
[3]Data Annotation和Fluent API的优先级是:Fluent API > DataAnnotations > 默认约定
13.EntityTypeConfiguration类方法
解析:
[1]HasKey<TKey>:为这个实体类型配置主键
[2]HasMany<TTargetEntity>:为实体类型配置多对多关系
[3]HasOptional<TTargetEntity>:为实体类配置可选关系。没有指定关系的实体类型的实例会被存入数据库。数据库里外键可为空(nullable)
[4]HasRequired<TTargetEntity>:为实体类型配置必须关系。除非关系确定,否则实体类型的实例不能存入数据库。数据库中的外键将不能为空(non-nullable)
[5]Ignore<TProperty>:从模型中排除一个属性,这个属性将不会映射到数据库
[6]Map:允许高级配置有关该实体类型映射到数据库模式
[7]Property<T>:配置一个定义了这种类型的结构属性
[8]ToTable:配置实体类型映射的表名
14.数据库映射关系
解析:
15.索引
解析:
[1]聚集索引:拼音查字法[排序]
[2]非聚集索引:部首查字法[非排序]
16.DataServiceContext.Savechanges()
解析:
[1]SaveChanges():将DataServiceContext跟踪的更改保存到存储区
[2]SaveChanges(SaveChangesOptions):将DataServiceContext跟踪的更改保存到存储区
说明:DataServiceResponse包含调用SaveChanges产生的状态、标头和错误。
17.Context生命周期
解析:Context相当于一个数据库连接,和数据库交互的上下文:
[1]一次请求一个Context
[2]不能一个进程就一个Context实例
[3]多线程最好多个实例
[4]用完尽快释放
18.Autofac的AOP面向切面编程
解析:Autofac的AOP面向切面编程
19.注册和使用Swagger服务
解析:
[1]注册Swagger服务
[2]使用Swagger服务
20.Nginx配置负载均衡
解析:
21.Asp.Net-Filter
解析:
[1]授权过滤器:IAuthorizationFilter
[2]异常过滤器:IExceptionFilter
[3]方法过滤器:IActionFilter
22.Core-Filter
解析:
[1]授权过滤器:AuthorizeAttribute
[2]异常过滤器:IExceptionFilter,IAsyncExceptionFilter
[3]方法过滤器:ActionFilterAttribute,IActionFilter,IAsyncActionFilter
[4]资源过滤器:IResourceFilter
[5]结果过滤器:ResultFilterAttribute,IResultFilter,IAsyncResultFilter
23.Asp.NetMVC Filter架构图
解析:
24.Core WebAPI Filter架构图
解析:
25.AOP面向切面编程
解析:
参考文献:
[1]实体框架文档:https://docs.microsoft.com/zh-cn/ef/
[2]EF Core工具和扩展:https://docs.microsoft.com/zh-cn/ef/core/extensions/
[3]数据库提供程序:https://docs.microsoft.com/zh-cn/ef/core/providers/?tabs=dotnet-core-cli
[4]Swashbuckle和ASP.NET Core入门:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio
[5]ASP.NET Core技术研究-探秘Host主机启动过程:https://mp.weixin.qq.com/s/QtSqz8YujxxI7qIx9fi09g
[6]在Ocelot中使用自定义的中间件[一]:https://mp.weixin.qq.com/s/D9FFeDAqxbtAu_YlYUrI4Q
[7]在Ocelot中使用自定义的中间件[二]:https://mp.weixin.qq.com/s/ZI9eQ6HpHig6GjmvSAE4jA