.net Core 2.1 MVC+EF+Redis搭建

官方学习资料

搭建空MVC框架

1.创建一个空模板

2.创建文件夹 Controllers、Models、Views

3.在Controllers文件夹下创建HomeController.cs

选择Controllers文件夹,右键-添加-新建项,选择MVC控制器类,添加HomeController.cs。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace RazorMvc.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
    }
}

4.在Models文件夹下创建HomeModel.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace RazorMvc.Models
{
    public class HomeModel
    {
    }
}

5.在Views文件夹中添加_Layout.cshtml

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>@ViewData["Title"]</title>
</head>
<body>
    @RenderBody()
    @RenderSection("Scripts", false)
</body>
</html>

6.在Views文件夹中添加_ViewStart.cshtml

@{
    Layout = "~/Views/_Layout.cshtml";
}

7.在Views文件夹中添加_ViewImports.cshtml

@using 项目命名空间
@using 项目命名空间.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

8.调整Startup.cs

public void ConfigureServices(IServiceCollection services)
{
      services.AddMvc();//注册服务
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();
    app.UseSession();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

9.调整完成后可保存为模板(可跳过,等后面完事一起存)

EF Core搭建

1.安装 EF Core

  • 工具 > NuGet 包管理器 > 包管理器控制台
  • 运行 Install-Package Microsoft.EntityFrameworkCore.SqlServer
  • 运行 Install-Package Microsoft.EntityFrameworkCore.Tools
  • 运行 Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
  • 听话全安了

2.从现有数据库创建模型

Scaffold-DbContext"Server=.;Database=test;uid=test;pwd=test;"Microsoft.EntityFrameworkCore.SqlServer-OutputDirModels

可以通过将-Tables参数添加到上述命令来指定要为哪些表生成实体。 例如-Tables Blog,Post

3.删除内联上下文配置

  • 打开Models\BloggingContext.cs
  • 删除OnConfiguring(...)方法

4.在 Startup.cs 中注册并配置上下文

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();

    var connection = @"Server=.;Database=test;uid=test;pwd=test;";
    services.AddDbContext<testContext>(options => options.UseSqlServer(connection));
}

5.系统生成测试页面

  • 在“解决方案资源管理器”中,右键单击“控制器”文件夹,然后选择“添加”->“控制器…”
  • 选择“视图使用 Entity Framework 的 MVC 控制器”,然后单击“确定”
  • 将“模型类”设置为“Test”,将“数据上下文类”设置为“TestContext”
  • 单击“添加”
  • 可运行起来测试数据库连接

使用Redis存储Session

//根据自己需要修改配置文件,此处直接https://www.cnblogs.com/shouwu/p/6180652.html

1.添加nuget程序包

Microsoft.AspNetCore.Session;
Microsoft.AspNetCore.DataProtection.Redis;
Microsoft.Extensions.Caching.Redis.Core;
Microsoft.AspNetCore.Http;     //使用Session时有扩展方法

2.在appsettings.json中添加Redis配置

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "WebConfig": {
    "Redis": {
      "Connection": "ip:6379,allowAdmin=true,password=Test",
      "InstanceName": "名称"
    },
    "SessionTimeOut": "30"
  }
}

3.在startup.cs类中,按如下例子添加代码

public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

ConfigureServices() 增加 

#region 使用Redis保存Session
var redisConn = Configuration["WebConfig:Redis:Connection"];
var redisInstanceName = Configuration["WebConfig:Redis:InstanceName"];
//Session 过期时长分钟
var sessionOutTime = Configuration.GetValue<int>("WebConfig:SessionTimeOut", 30);

var redis = StackExchange.Redis.ConnectionMultiplexer.Connect(redisConn);
services.AddDataProtection().PersistKeysToRedis(redis, "DataProtection-Test-Keys");
services.AddDistributedRedisCache(option =>
{
    //redis 连接字符串
    option.Configuration = redisConn;
    //redis 实例名
    option.InstanceName = redisInstanceName;
});
#endregion

//添加Session并设置过期时长
services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(sessionOutTime); });

Configure() 在app.UseMvc之前增加

app.UseSession();

Redis存储Session

HttpContext.Session.SetString("UserName", userName);
HttpContext.Session.GetString("UserName");

普通存储Redis

public IDistributedCache _RCache { get; set; }
public MyToolController(IDistributedCache RCache)
{
    _RCache = RCache;
}
_RCache.SetString("UserName", UserName);
_RCache.GetString("UserName");

附加

  • JS/CSS 压缩 Install-Package YUICompressor.NET
  • JS压缩

    JavaScriptCompressor jsCompressor = new JavaScriptCompressor
    {
        //使用utf-8 编码文件
        Encoding = Encoding.UTF8
    };
    jsCompressor.Compress(str);
  • Css压缩

    CssCompressor cssCompressor = new CssCompressor();
    cssCompressor.Compress(str);
  • 安装结束后包数量,无任何参考价值hhh

原文地址:https://www.cnblogs.com/hqxc/p/9414410.html

时间: 2024-08-29 01:41:32

.net Core 2.1 MVC+EF+Redis搭建的相关文章

.net core Asp.net Mvc Ef 网站搭建 vs2017 1)

1)开发环境搭建 首先下载安装vs2017  地址 :https://www.visualstudio.com/zh-hans/downloads/ 安装勾选几项如下图 ,注意点在单个组件时.net core 运行时一定要勾上,很多人都没勾结果新增不了.net core 项目 2)开发 1.新增.net core mvc asp.net 2.新增Ef项目 首先通过nuget 安装三个依赖项 Install-Package Microsoft.EntityFrameworkCore.SqlServ

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入

概述 上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建. 微软爸爸官方文档:使用新数据库在 ASP.NET Core 上开始使用 EF Core    数据库表字段命名规范 步骤 1. 右击 Entity 项目,点击"管理NuGet程序包" 2. 安装以下三个包 Microsoft.EntityFrameworkCore     安装版本:2.1.0 Microsoft.Entity

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(4) - EF Core CodeFirst 数据库创建

概述 在 基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入 一文中,我们介绍如何快速以CodeFirst快速搭建数据库,这一章,我们来完善一下创建数据库中可以添加的验证与约束. 微软爸爸官方文档:Entity Framework Core 数据库操作 (1) 数据库迁移  add-migration [任一名称,须唯一] (2) 更新数据库  update-database (3) 删除数据库迁

Asp.net Core MVC 项目系统搭建与应用

第一部分 编程基础 Asp.net Core 简介 Asp.net Core 开始 Asp.net Core MVC 简介 第二部分 基础框架 Asp.net Core MVC  EntityFrameWorkCore 简介 Asp.net Core MVC EntityFrameWorkCore 高级应用 MSSQL 2016/MySQL Asp.net Core MVC Dapper 简介 Asp.net Core MVC Dapper 高级应用 MSSQL 2016/MySQL 第三部分

开源题材征集 + MVC&amp;EF Core 完整教程小结

到目前为止,我们的MVC+EF Core 完整教程的理论部分就全部结束了,共20篇,覆盖了核心的主要知识点. 下一阶段是实战部分,我们将会把这些知识点串联起来,用10篇(天)来完成一个开源项目. 现向园友征集题材,你提需求我来实现. 请在评论中提出你的需求,并加以简明扼要的描述. 题材最好是有趣的.有一定应用价值的,例如像Trello这样的效率管理系统. 我将会在选取一个相对适合的题材,通过敏捷开发,快速迭代,将详细开发过程记录下来,抛砖引玉,供大家参考. 前面已完成的20篇我们以技术为主导,后

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现   (6):EF上下文实例管理   (7):DBSession的封装   (8):DBSession线程内唯一 前言:前面我们基本已经完成了一个Demo,我们在后面的

Java Spring mvc 操作 Redis 及 Redis 集群

本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 Redis 是什么,能做什么 Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型.内置复制.Lua脚本.LRU收回.事务以及不同级别磁盘持久化功能,同时通过Redis

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(0) - 目录概述

概述 博主自毕业后,进公司就一直是以ASP.NET MVC 5.0 + MySQL 进行项目开发,在项目也使用了很多常用功能,如 WCF.SignalR.微信公众号API.支付宝API.Dapper等等,前端是大杂烩,如:Bootstrap.AmazeUI.EasyUI.Light7.WeUI等等.其实对于我们公司的项目来说,技术栈虽说不庞大,但五脏俱全,而且基于这一套技术,开发速度有保证.但是,作为一个有梦想的程序猿,必须与时俱进,因此无意中接触了.Net Core 2.0.听说它是开源的?它