一、.Net core 配置及概述
.net core将应用程序配置分离,基于配置提供键值对,以键值对的形式从各种配置源读取配置数据
launchSettings.json是启动配置文件,如果需要更改服务器启动时地址或端口号可以在该文件修改
appsettings.json是程序运行时应用的配置文件,默认包含日志(Logging)
appsettings.Development.json是程序调试时应用的配置文件,默认包含日志(Logging)
配置文件规则(配置键): 1、键不区分大小写;2、键上的最后一个值就是所使用的值;3、键和值使用冒号分隔且使用于所有平台;4、所有平台均支持采用双下划线(=)且可以自动将其转换为冒号;5、分层键使用两个破折号(——)作为分隔符,将机密加载到应用的配置中时必须提供代码以用冒号替换破折号;6、ConfigurationBinder类支持使用配置键中的数组索引将数组绑定到对象
配置值: 1、值是字符串;2、null值不能存储在配置中或绑定到对象中
通过IConfiguration.GetSection()方法读取配置键,最后使用Get<T>方法绑定配置得到的SitConfig对象中
在浏览器中显示的结果有中文乱码,是因为appsettings.json的文档编码是GB2312需要通过记事本或Notepad++等工具将文档编码转换为UTF-8 BOM
appsettings.json和appsettings。Development.json需要有相同配置,否则调试时会出现错误
二、.NET CORE 日志
日志是记录系统操作、用户操作、系统运行状态等技术,是大型企业软件系统的重要组成部分
日志等级:1、跟踪级别;2、调试级别;3、信息级别;4、警告级
别;5、错误级别;6、严重级别
日志使用:1、添加提供程序,在Program.cs中通过调用提供程序,Add{ProviderName}扩展方法添加日志提供程序,使用ConfigureLogging()方法注册日志提供程序,先使用ClearProviders()方法清除默认日志提供程序
创建日志:因为ILogger对象是.net core的内置服务(service)所以不需要在Startup类的ConfigureService()方法里面注册了只需要从控制器构造方法中获取传入ILogger对象扩展方法写入不同日志级别信息常用ILogger<TCategoryName>中对象扩展
LogCritical() | 关键日志信息 |
LogDebug() | 调试日志信息 |
LogError() | 错误日志信息 |
LogInformation() | 信息日志信息 |
LogTrace() | 跟踪日志信息 |
LogWarning() | 警告日志信息 |
三、EF Core应用
EF Core是轻量化、可扩展、跨平台的常用Entity Framework 数据访问技术,可用做对象关系映射程序O/RM
使用EF Core生成数据库:
1、添加core支持程序包:Microsoft.EntityFrameworkeCore.SqlServer(数据库EF提供程序),Microsoft.EntityFrameworkCore.Design设计时调用EF共享库,Microsoft.EntityFrameworkCore.Tools Nuget包管理器命令工具;
2、创建模型类文件:创建类,如果类里面有Id字段,EF Core会自动识别为主键,如果类中包含ICollection类型的字段会识别为导航属性并称为表的外键字段
在声明模型类字段时,可以使用MVC中注解特性来声明主键和约束
3、创建上下文类文件
创建ShopContext数据上下文类来管理数据,在其中需要重写ShopContext类的OnConfiguring()方法设置数据库连接字符串
需要导入Microsoft.Microsoft.EntityyFrameworkCore命名空间
4、使用NuGet包管理生成数据库和表
打开->工具->NuGet包管理器->程序包管理控制台输入命令:Add-Migration:创建准备迁移的框架代码;Update-Migration:将任何挂起的迁移应用到数据库
5、添加数据
四、EF Core的使用
1、导入Microsoft.EntityFrameworkeCore.SqlServer,Microsoft.EntityFrameworkCore.Design,Microsoft.EntityFrameworkCore.Tools 三个程序包,在NuGet控制台输入:
Scaffold-DbContext 'Data Source=.;Initial Catalog=数据库名称;Integrated Security=True;' Microsoft.EntityFrameworkeCore.SqlServer -OutPutDir 文件名 -Context 自己取一个名称
2、
3、