1,安装环境:

如果是VS2015,确保已经升级至 update3或以上

.net core sdk (https://www.microsoft.com/net/download/core)

vs2015 tools

2,创建一个asp.net Core的项目

3,创建实体Entity,用户和角色

    public class User
{
public int Id { get; set; }
/// <summary>
/// 角色Id
/// </summary>
public int RoleId { get; set; }
public virtual Role Role { get; set; }
/// <summary>
/// 状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 登陆名
/// </summary>
public string Login { get; set; }
/// <summary>
/// 登陆密码
/// </summary>
public string Pwd { get; set; }
}
    public class Role
{
public int Id { get; set; }
/// <summary>
/// 角色名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 一个角色的多个用户
/// </summary>
public virtual ICollection<User> Users { get; set; }
}

4,创建DbContext

    public class EFDbContext: DbContext
{
public EFDbContext(DbContextOptions<EFDbContext> options) : base(options)
{ }
public DbSet<Role> Roles { get; set; }
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
Role(modelBuilder);
User(modelBuilder);
} private void User(ModelBuilder modelBuilder)
{
var userBuilder = modelBuilder.Entity<User>().ToTable("User");
// Properties
userBuilder.Property(t => t.Id).ValueGeneratedOnAdd();
userBuilder.Property(t => t.RoleId).IsRequired();
userBuilder.Property(t => t.Status).IsRequired();
userBuilder.Property(t => t.Login).IsRequired().HasMaxLength(30);
userBuilder.Property(t => t.Pwd).IsRequired().HasMaxLength(60);
// Primary Key
userBuilder.HasKey(t => t.Id);
// Index
userBuilder.HasIndex(t => t.Login);
// Relationships
userBuilder.HasOne(t => t.Role).WithMany(t => t.Users).HasForeignKey(t => t.RoleId);
} private void Role(ModelBuilder modelBuilder)
{
var roleBuilder = modelBuilder.Entity<Role>().ToTable("Role");
// Properties
roleBuilder.Property(t => t.Id).ValueGeneratedOnAdd();
roleBuilder.Property(t => t.Name).IsRequired().HasMaxLength(30);
// Primary Key
roleBuilder.HasKey(t => t.Id);
}
}

5,创建DbInitializer,用于创建初始数据

    public class DbInitializer
{
public async static Task InitData(EFDbContext context)
{
if (context.Database != null && context.Database.EnsureCreated())
{
//角色配置
context.Roles.AddRange(new Role[]
{
new Role { Name="超级管理员" },
new Role { Name="管理员" }
});
//默认用户
context.Users.AddRange(new User[]
{
new User { RoleId=1, Login="administrator", Pwd="111111" },
new User { RoleId=2, Login="admin", Pwd="111111" }
}); await context.SaveChangesAsync();
}
}

6,修改Startup类方法

在ConfigureServices添加如下代码

// DbContext
services.AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

在Configure方法内添加

        public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug(); app.UseMvc(); await DbInitializer.InitData(app.ApplicationServices.GetService<EFDbContext>());
}

7,修改appsettings.json

{
"ConnectionStrings": {
"DefaultConnection": "Data Source=.;Initial Catalog=LniceCore;Integrated Security=SSPI;"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}

8,运行程序,查看结果

ASP.NET Core使用EntityFrameworkCore CodeFrist的更多相关文章

  1. Asp.net Core 使用 EntityFrameworkCore 1.1

    前言 相比大家也在开发中是非常喜欢用ORM的.今天就来介绍一下EntityFrameworkCore的使用方法. 自从EF Core升级到1.1之后,确实变化挺大的.如果没试过真的不知道坑是挺多的.今 ...

  2. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  3. ASP.NET Core 开发 - Entity Framework (EF) Core

    EF Core 1.0 Database First http://www.cnblogs.com/linezero/p/EFCoreDBFirst.html ASP.NET Core 开发 - En ...

  4. ASP.NET Core WebAPI 开发-新建WebAPI项目

    ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...

  5. ASP.NET Core WebAPI 开发-新建WebAPI项目 转

    转 http://www.cnblogs.com/linezero/p/5497472.html ASP.NET Core WebAPI 开发-新建WebAPI项目   ASP.NET Core We ...

  6. ASP.NET Core学习之五 EntityFrameworkCore

    目的:运用EntityFrameworkCore ,使用codefirst开发 一.创建web项目 创建一个不进行身份验证的   ASP.NET Core Web Application (.NET ...

  7. Asp.net Core 2.0+EntityFrameWorkCore 2.0添加数据迁移

    Asp.net Core 由于依赖注入的广泛使用,配置数据迁移,与Asp.net大不相同,本篇介绍一下Asp.net Core添加数据迁移的过程 添加Nuget包 Install-Package Mi ...

  8. ASP.NET Core 3.1 WebApi+JWT+Swagger+EntityFrameworkCore构建REST API

    一.准备 使用vs2019新建ASP.NET Core Web应用程序,选用api模板: 安装相关的NuGet包: 二.编码 首先编写数据库模型: 用户表 User.cs: public class ...

  9. ASP.NET Core 1.0 开发记录

    官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...

随机推荐

  1. python3 正则匹配[^abc]和(?!abc)的区别(把多个字符作为一个整体匹配排除)

    目的:把数字后面不为abc的字符串找出来 如1ab符合要求,2abc不符合要求 str = '1ab' out = re.match(r'\d+(?!abc)',str) str1 = '1abc' ...

  2. 数据结构——串(KMP)

    空串:长度为0的串 空格串:由一个或多个空格组成的串 串常用的3种机内表示方法: 定长顺序存储表示: 用一组地址连续的存储单元存储串的字符序列,每一个串变量都有一个固定长度的存储区,可用定长数组来描述 ...

  3. Jenkins问题笔记

    1.启动docker容器权限不足 通过如下命令启动docker容器后,使用命令"docker logs -f jenkins"查看jenkins容器日志, docker run - ...

  4. faiss索引基于数量级和内存限制的选择

    它是一个能使开发者快速搜索相似多媒体文件的算法库.而该领域一直是传统的搜索引擎的短板.借助Faiss,Facebook 在十亿级数据集上创建的最邻近搜索(nearest neighbor search ...

  5. promise.then, setTimeout,await执行顺序问题

    promise.then VS setTimeout 在chrome和node环境环境中均输出2, 3, 1, 先输出2没什么好说的,3和1顺序让人有些意外 原因: 有一个事件循环,但是任务队列可以有 ...

  6. webpack工程搭建

    >>建立nodejs工程 新建文件夹,npm init 生成package.json >>安装webpack 和 webpack-dev-server npm install ...

  7. Docker registry垃圾回收

    Docker registry垃圾回收 通过: docker run -p 5000:5000 -v /netdata/xxxx/registry:/var/lib/registry registry ...

  8. linux系统ssh免密钥登录配置

    linux主机配置ssh免密钥登录,具体配置如下: 1.执行命令ssh-keygen -t rsa,生成公钥和私钥(具体步骤详见下图) 2.会在当前用户的家目录的.ssh/生成公钥和私钥, 3.执行s ...

  9. LVS(一):基本概念和三种模式

    网站架构中,负载均衡技术是实现网站架构伸缩性的主要手段之一.所谓"伸缩性",是指可以不断向集群中添加新的服务器来提升性能.缓解不断增加的并发用户访问压力. 负载均衡有好几种方式:h ...

  10. PowerScript SQL语句

    PowerScript支持在脚本中使用标准的嵌入式SQL和动态SQL语句.还支持在SQL语句中使用数据库管理系统的语句.函数和保留字. 在SQL中任何地点都可以使用常量和任何合法的变量,但使用变量时必 ...