在空余时间学习下NetCore,记录日常,供参考。

1.确保已下载安装NetCore2.2SDK 环境,下载地址:https://dotnet.microsoft.com/download/dotnet-core/2.2

2.打开VS2017,首先新建一个解决方案,并在解决方案上新建项目操作,选择ASP.NET Core Web 应用程序,点击“确定”。继续,NetCore版本选择ASP.NET Core 2.2,类型选择“Web应用程序”点击确定。

3、在appsettings.json添加配置数据库链接字符串,添加后如下图

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
  "AllowedHosts": "*",
"ConnectionStrings": { "DefaultConnectionString": "Data Source=.;Initial Catalog=bcmf_core;User ID=sa;Password=123456" }
}

4.NetCore2.2的SDK正常包含有Microsoft.EntityFrameworkCore和microsoft.EntityFrameworkCore.SqlServer,若没有,可以在NuGet包中查询安装,这里也是安装的2.2版本

NuGet官网:https://www.nuget.org/

搜索以上两个引用名称,获取安装命令行,在VS2017的程序包管理器控制台输入对应命令行,如下:

5.在Models文件夹新建文件夹“Entity”,在Entity下存放我们的数据实体类,新建实体类User.cs,这里视个人情况而定,我选择的是以前项目的一个测试数据库。

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

namespace NetCoreCMS.Models.Entity
{
    public class User
    {
        public int UserId { get; set; }
        public int PermissionId { get; set; }
        public int RoleId { get; set; }
        public string Name { get; set; }
        public string NameCN { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
        public bool IsSystem { get; set; }
        public bool IsActive { get; set; }
    }
  
    /// <summary>
    /// 返回模型类
    /// </summary>
  public class UserViewModel
    {
        public int UserId { get; set; }
        public int PermissionId { get; set; }
        public int RoleId { get; set; }
        public string Name { get; set; }
        public string NameCN { get; set; }
        public string Email { get; set; }
        public string IsSystem { get; set; }
        public string IsActive { get; set; }
    }
}

5、在Models文件夹新建文件夹“Mapping”,在Mapping下存放我们的数据实体映射类,新建实体类UserMapping.cs,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CMSCore.Web.Models.Entity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace CMSCore.Web.Models.Mapping
{
public class UserMapping : IEntityTypeConfiguration<User>
{
void IEntityTypeConfiguration<User>.Configure(EntityTypeBuilder<User> builder)
{
builder.ToTable("User");//对应数据库User表
builder.HasKey("UserId");
builder.Property(t => t.PermissionId).HasColumnName("PermissionId").IsRequired();
builder.Property(t => t.RoleId).HasColumnName("RoleId").IsRequired();
builder.Property(t => t.Name).HasColumnName("Name").IsRequired().HasMaxLength();
builder.Property(t => t.NameCN).HasColumnName("NameCN").IsRequired().HasMaxLength();
builder.Property(t => t.Email).HasColumnName("Email").IsRequired().HasMaxLength();
builder.Property(t => t.Password).HasColumnName("Password").IsRequired();
builder.Property(t => t.IsSystem).HasColumnName("IsSystem").IsRequired();
builder.Property(t => t.IsActive).HasColumnName("IsActive").IsRequired();
}
}
}

6、在Models文件夹新建上下文BcmfContext.cs类

using CMSCore.Web.Models.Entity;
using CMSCore.Web.Models.Mapping;
using Microsoft.EntityFrameworkCore; namespace CMSCore.Web.Models
{
public class BcmfDBContext : DbContext
{
public BcmfDBContext(DbContextOptions options) : base(options)
{
}
     
        public DbSet<User> User { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new UserMapping());
base.OnModelCreating(modelBuilder);
}
}
}

7、在入口文件注册上下文,在根目录Startup.cs的ConfigureServices方法中,注册上下文。

不要忘记了添加引用命名空间
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.SqlServer;

 // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
}); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
//注册数据库操作上下文
services.AddDbContext<BcmfDBContext>(option => option.UseSqlServer(Configuration.GetConnectionString("DefaultConnectionString")));
}

8、在Controller文件夹下,创建控制器UserController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CMSCore.Web.Models;
using CMSCore.Web.Models.Entity;
using Microsoft.AspNetCore.Mvc; // For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace CMSCore.Web.Controllers
{
public class UserController : Controller
{
private readonly BcmfDBContext db; public UserController(BcmfDBContext _db)
{
db = _db;
} // GET: /<controller>/
public IActionResult Index()
{
var userList = db.User.Where(m => m.IsActive).Select(t => new UserViewModel
{
Email = t.Email,
IsActive = t.IsActive ? "激活" : "禁用",
IsSystem = t.IsSystem ? "是" : "否",
Name = t.Name,
NameCN = t.NameCN,
PermissionId = t.PermissionId,
RoleId = t.RoleId,
UserId = t.UserId
});
return Json(userList);
}
}
}

运行、访问/user/index,成功获取用户信息

创建NetCore2.2 Web项目+EFCore+SQLServer的更多相关文章

  1. step2-------使用myeclipse创建maven java web项目

    1.文章内容概述: 在对项目需求进行分析之后,决定使用maven对我的java web项目进行管理,这篇文章记录了使用myeclipse创建maven java web项目的过程. 2.开发环境: j ...

  2. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]

    写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...

  3. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目

    注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...

  4. IDEA如何创建及配置Web项目(多图)

    正文之前 在学习Java Web时,第一个遇到的问题就是如何创建或配置Web项目了,今天,就用IntelliJ IDEA 来进行Web项目配置: 创建Web项目 配置web项目 正文 创建Web项目 ...

  5. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  6. Eclipse创建一个Maven Web项目

    在这篇文章中,我们将演示如何在Eclipse IDE中使用maven创建一个动态Web项目. 使用的工具和技术 - Eclipse Jee Oxygen Maven 3.3.3 JavaSE 1.8 ...

  7. 创建一个动态Web项目:

    开始你的Eclipse,然后进入“文件”>“新建”>“动态Web项目,然后输入项目名称为HelloWorldStruts2和设置其他的选项,在下面的屏幕: 选择在屏幕上的所有默认选项,最后 ...

  8. maven 学习---用Eclipse创建一个Maven Web项目

    下面是使用 Eclipse 来创建一个Maven Web项目的说明.这是相当简单的. 现在让我们开始吧! 1: 启动 Eclipse, 点击 File->New->Other 2: 在弹出 ...

  9. 【Java Web】IDEA如何创建及配置Web项目(多图)

    正文之前 在学习Java Web时,第一个遇到的问题就是如何创建或配置Web项目了,今天,就用IntelliJ IDEA 来进行Web项目配置: 创建Web项目 配置web项目 正文 创建Web项目 ...

随机推荐

  1. *RelativeLayout的布局参数含义表,如android:layout_alignParentTop等

    RelativeLayout 参数规则 一个控件的位置由横,纵两个方向上的距离决定 控件默认的位置在左上角. 单独使用以下属性都只是改变一个方向的相对位置. 如:只使用了android:layout_ ...

  2. SimpleDataFormat详解

    [转]SimpleDateFormat使用详解 public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方 ...

  3. Java 8 (6) Stream 流 - 并行数据处理与性能

    在Java 7之前,并行处理集合非常麻烦.首先你要明确的把包含数据的数据结构分成若干子部分,然后你要把每个子部分分配一个独立的线程.然后,你需要在恰当的时候对他们进行同步来避免竞争,等待所有线程完成. ...

  4. 实现div左右上下都居中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. CentOS 7下ElasticSearch集群搭建案例

    最近在网上看到很多ElasticSearch集群的搭建方法,本人在这人使用Elasticsearch5.0.1版本,介绍如何搭建ElasticSearch集群并安装head插件和其他插件安装方法. 一 ...

  6. Concurrent control in SQLite

    This document describes the technologies to concurrent access to a SQLite database. There are also s ...

  7. 安装好Pycharm后如何配置Python解释器简易教程

    呃呃,遇到坑了...... 安装完Python,没有去配置好Python解释器,直接打开Python项目包,去运行程序,程序输出结果只是显示 Process finished with exit co ...

  8. js获取微信版本号的方法

    微信现在几乎已经普遍在使用,但是微信版本一直在更新,不同的版本有不同的功能,于是了解微信的版本号很重要,以便自己及时更新体验新的功能.那么如何用js获取微信版本号呢? 一.判断微信版本号 ? 1 2 ...

  9. Vue指令3:v-for

    列表渲染 我们用 v-for 指令根据一组数组的选项列表进行渲染.v-for 指令需要使用item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名. & ...

  10. java计算两地距离(公里)

    //目标经度,目标纬度,自己经度,自己纬度 public static double getDistance(double lon1, double lat1, double lon2, double ...