1,安装环境:

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

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

vs2015 tools

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

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

  1. public class User
  2. {
  3. public int Id { get; set; }
  4. /// <summary>
  5. /// 角色Id
  6. /// </summary>
  7. public int RoleId { get; set; }
  8. public virtual Role Role { get; set; }
  9. /// <summary>
  10. /// 状态
  11. /// </summary>
  12. public int Status { get; set; }
  13. /// <summary>
  14. /// 登陆名
  15. /// </summary>
  16. public string Login { get; set; }
  17. /// <summary>
  18. /// 登陆密码
  19. /// </summary>
  20. public string Pwd { get; set; }
  21. }
  1. public class Role
  2. {
  3. public int Id { get; set; }
  4. /// <summary>
  5. /// 角色名
  6. /// </summary>
  7. public string Name { get; set; }
  8. /// <summary>
  9. /// 一个角色的多个用户
  10. /// </summary>
  11. public virtual ICollection<User> Users { get; set; }
  12. }

4,创建DbContext

  1. public class EFDbContext: DbContext
  2. {
  3. public EFDbContext(DbContextOptions<EFDbContext> options) : base(options)
  4. { }
  5. public DbSet<Role> Roles { get; set; }
  6. public DbSet<User> Users { get; set; }
  7. protected override void OnModelCreating(ModelBuilder modelBuilder)
  8. {
  9. Role(modelBuilder);
  10. User(modelBuilder);
  11. }
  12.  
  13. private void User(ModelBuilder modelBuilder)
  14. {
  15. var userBuilder = modelBuilder.Entity<User>().ToTable("User");
  16. // Properties
  17. userBuilder.Property(t => t.Id).ValueGeneratedOnAdd();
  18. userBuilder.Property(t => t.RoleId).IsRequired();
  19. userBuilder.Property(t => t.Status).IsRequired();
  20. userBuilder.Property(t => t.Login).IsRequired().HasMaxLength(30);
  21. userBuilder.Property(t => t.Pwd).IsRequired().HasMaxLength(60);
  22. // Primary Key
  23. userBuilder.HasKey(t => t.Id);
  24. // Index
  25. userBuilder.HasIndex(t => t.Login);
  26. // Relationships
  27. userBuilder.HasOne(t => t.Role).WithMany(t => t.Users).HasForeignKey(t => t.RoleId);
  28. }
  29.  
  30. private void Role(ModelBuilder modelBuilder)
  31. {
  32. var roleBuilder = modelBuilder.Entity<Role>().ToTable("Role");
  33. // Properties
  34. roleBuilder.Property(t => t.Id).ValueGeneratedOnAdd();
  35. roleBuilder.Property(t => t.Name).IsRequired().HasMaxLength(30);
  36. // Primary Key
  37. roleBuilder.HasKey(t => t.Id);
  38. }
  39. }

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

  1. public class DbInitializer
  2. {
  3. public async static Task InitData(EFDbContext context)
  4. {
  5. if (context.Database != null && context.Database.EnsureCreated())
  6. {
  7. //角色配置
  8. context.Roles.AddRange(new Role[]
  9. {
  10. new Role { Name="超级管理员" },
  11. new Role { Name="管理员" }
  12. });
  13. //默认用户
  14. context.Users.AddRange(new User[]
  15. {
  16. new User { RoleId=1, Login="administrator", Pwd="111111" },
  17. new User { RoleId=2, Login="admin", Pwd="111111" }
  18. });
  19.  
  20. await context.SaveChangesAsync();
  21. }
  22. }

6,修改Startup类方法

在ConfigureServices添加如下代码

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

在Configure方法内添加

  1. public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  2. {
  3. loggerFactory.AddConsole(Configuration.GetSection("Logging"));
  4. loggerFactory.AddDebug();
  5.  
  6. app.UseMvc();
  7.  
  8. await DbInitializer.InitData(app.ApplicationServices.GetService<EFDbContext>());
  9. }

7,修改appsettings.json

  1. {
  2. "ConnectionStrings": {
  3. "DefaultConnection": "Data Source=.;Initial Catalog=LniceCore;Integrated Security=SSPI;"
  4. },
  5. "Logging": {
  6. "IncludeScopes": false,
  7. "LogLevel": {
  8. "Default": "Debug",
  9. "System": "Information",
  10. "Microsoft": "Information"
  11. }
  12. }
  13. }

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. excel 拷贝数据到 plsql 报 is not a valid date and time

    按以下格式设置时间格式

  2. Jmeter学习记录

    JSON正则表达式提取规则 https://www.cnblogs.com/hc1020/p/7723720.html Jmeter非GUI下执行日志 执行命令 ./jmeter  -n  -t  $ ...

  3. element-ui:el-table时间格式化

    如果想对表格某一列的内容格式化,可用 formatter 属性.属性绑定格式化的方法即可 <el-table-column prop="update_time" label= ...

  4. 38_redux_counter应用_react版本

    redux的核心API 使用非redux创建: 项目结构: index.js import React from 'react'; import ReactDOM from 'react-dom'; ...

  5. angular的符号

    1.括号 {{模板标签}}: 模板标签中的内容会被当作一个表达式展开. [传入名] = ”接收变量名“: 可以把一个值传入组件.输入. (事件名) = “处理函数()”: 响应事件.输出. #视图变量 ...

  6. docker 启动报错 WARNING: IPv4 forwarding is disabled. Networking will not work.

    解决办法: # vi /etc/sysctl.conf 或者 # vi /usr/lib/sysctl.d/00-system.conf 添加如下代码:     net.ipv4.ip_forward ...

  7. 修复Microsoft Store 无法连接网络 代码: 0x80072EFD

    事情的经过是这样的,我的Windows版本是1709,前两天刚从1703升上来,今天突然发现它自己给我装了个skype,我上Microsoft商店里查一下是什么情况,结果突然发现它又双双双不正常工作了 ...

  8. eclipse配置maven仓库

    在eclipse中搭建maven工程时,首先需要搭建好maven本地仓库,搭建过程比较简单 1.首先,在eclipse中,打开windows->Maven->User Settings; ...

  9. cf1047C-Enlarge GCD-(欧拉筛+map+gcd+唯一分解定理)

    https://vjudge.net/problem/CodeForces-1047C 题意:有n个数,他们有个最大公约数设为maxxgcd,要删去一些数,使得剩下的数的gcd大于maxxgcd. 解 ...

  10. Linux内核d_path函数应用的经验总结

    问题背景 一个内核模块中,需要通过d_path接口获取文件的路径,然后与目标文件白名单做匹配. 在生产环境中,获取的文件是存在的,但是与文件白名单中的文件总是匹配失败. 问题定位: 通过打印d_pat ...