第3章 ASP.NET Core 进阶

目录

3.1 ASP.NET Core 配置 

3.2 ASP.NET Core 日志 

3.3 EF Core 应用 (模型优先)ModelFirst

3.4EF Core 的使用(数据库优先)(DatabaseFirst)


第三章所有Demo(1积分)3.1和3.2在一块

https://download.csdn.net/download/weixin_55959870/77125867https://download.csdn.net/download/weixin_55959870/77125867
3.1 ASP.NET Core 配置 

本章简介
ASP.NET Core相对于传统的ASP.NET的主要区别之一是配置文
件体系不同。在ASP.NET Core中使用JSON格式文件代替XML格式
文件进行应用程序配置,-般将项目的配置信息写在:
appsettings.json文件和appsettings .Development.ison文件中。
ASP.NET Core还可以使用Entity Framework Core来进行数据库
操作,而Entity Framework Core (EF Core)支持多种数据库类型。
 

学习目标

(1) ASP.NET Core配置的概念、配置文件格式规则和
读取配置文件方法
(2 )使用ASP.NET Core内置的日志功能
(3)学习Entity Framework Core生成数据库和从数据
库反向生成实体模型的方法,
(4)学习在ASP.NET Core中使用Entity Framework Core
来操作数据库。
 

2.配置文件格式规则        
配置键采用以下约定:
(1)键不区分大小写。
(2)如果由相同或不同的配置提供程序设置相同键的值,则键上设置的最
后一个值就是所使用的值。
(3)在配置API中,键和值使用冒号分隔符(:)分隔,且适用于所有平台。
(4)在环境变量中,冒号分隔符可能无法适用于所有平台,但所有平台均
支持采用双下划线(==== ),并可以将其自动转换为冒号。
(5)在Azure KeyVault中,分层键使用两个破折号作为分隔符,将机密加
载到应用的配置中时必须提供代码以用冒号替换破折号。
(6) ConfigurationBinder类支持使用配置键中的数组索引将数组绑定到对象。

配置值采用以下约定:
(1)值是字符串。
(2) NULL值不能存储在配置中或绑定到对象中。

 

VS2019 

中配置如下

{
  "SiteConfig": {
    "Name": "商城后台管理",
    "Copyright": "版权所有:上次软件开发组"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

新建控制器

 private  IConfiguration config;

        public ShopController(IConfiguration configuration) 
        {
            config = configuration;
        }

        public IActionResult Index()
        {
            SiteConfig siteConfig = config.GetSection("SiteConfig").Get<SiteConfig>();
            return View(siteConfig);
        }

Index页面


<div>
    @Model.Name
</div>

<div>
    @Model.Copyright
</div>

3.2 ASP.NET Core 日志 

1.日志概述与等级
日志是用来记录系统操作、用户操作、系统运行状态等技术,
是大型企业软件系统的重要组成部分。
程序中记录日志有两个目的:故障定位和显示程序运行状态。
好的日志记录方式是提供足够定位问题的依据。
ASP.NET Core定义了6个日志级别( LogLevel),按严重性从低到高排列。
跟踪级别
调试级别
信息级别
警告级别
错误级别
严重级别


        private readonly ILogger<HomeController> _logger;
    
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

3.3 EF Core 应用 (模型优先)ModelFirst

1.EF Core介绍
EF Core是轻量化、可扩展和跨平台版的常用Entity Framework
数据访问技术。EF Core可用作对象关系映射程序(O/RM),以便于
.NET开发人员能够使用.NET对象来处理数据库。
EF Core是更现代、可扩展的轻量级实体框架版本,与EF6 的功
能和优点非常相似。EF Core则完全进行了重写,包含许多EF6没有
的新功能,但还是缺少EF6中最高级的一些映射功能。只要功能集
与需求匹配,建议在新应用程序中使用EF Core。

创建一个控制台
 

引入包 

1.创建Model

2.写Context

   public  class ShopContext: DbContext
    {
        public DbSet<Category> Categories { get; set; }
        public DbSet<Product> Products { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("Data Source=.;Initial Catalog=ShopDB;Integrated Security=True;");
        }
    }

3.数据库迁移代码

Add-Migration 迁移名字(英文)

Update-Database       创建数据库

数据库就已经生成

3.4EF Core 的使用(DatabaseFirst)(数据库优先)

1.在ASP.NET Core中使用EF Core
在ASP.NET Core Web应用程序中使用EF Core,首先添加EF Core
支持程序包,需要添加3 E个程序包,即:
Microsoft. EntityFrameworkCore.SqlServer
Microsoft .EntityFrameworkCore.Design
Microsoft .EntityFrameworkCore.Tools

 安装三个

首先打开控制台

自动连接写法·sqlserver2019

Scaffold-Dbcontext 'Data Source=127.0.0.1;Initial Catalog=数据库名;Integrated Security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 自定义Context

密码链接写法·sqlserver2019

Scaffold-Dbcontext 'Data Source=127.0.0.1;Initial Catalog=数据库名;User Id=用户名;Password=密码;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 自定义Context
 

Startup.cs中ConfigureServices()方法中配置

 services.AddDbContext<ShopContext>(options =>
            {
                options.UseSqlServer(Configuration.GetConnectionString("ShopDB"));
            });

appsettings.json中配置

"ConnectionStrings": {
    "ShopDB": "Data Source=127.0.0.1;Initial Catalog=ShopDB;Integrated Security=True;"
  },

名称要一样

然后就可以在控制器中调用

 private ShopContext shopDB;

  ViewBag.lisy = shopDB.Categories.ToList();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值