ASP.NET Core使用EntityFrameworkCore CodeFrist
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的更多相关文章
- Asp.net Core 使用 EntityFrameworkCore 1.1
前言 相比大家也在开发中是非常喜欢用ORM的.今天就来介绍一下EntityFrameworkCore的使用方法. 自从EF Core升级到1.1之后,确实变化挺大的.如果没试过真的不知道坑是挺多的.今 ...
- Asp.Net Core 项目实战之权限管理系统(0) 无中生有
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- 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 ...
- ASP.NET Core WebAPI 开发-新建WebAPI项目
ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...
- ASP.NET Core WebAPI 开发-新建WebAPI项目 转
转 http://www.cnblogs.com/linezero/p/5497472.html ASP.NET Core WebAPI 开发-新建WebAPI项目 ASP.NET Core We ...
- ASP.NET Core学习之五 EntityFrameworkCore
目的:运用EntityFrameworkCore ,使用codefirst开发 一.创建web项目 创建一个不进行身份验证的 ASP.NET Core Web Application (.NET ...
- Asp.net Core 2.0+EntityFrameWorkCore 2.0添加数据迁移
Asp.net Core 由于依赖注入的广泛使用,配置数据迁移,与Asp.net大不相同,本篇介绍一下Asp.net Core添加数据迁移的过程 添加Nuget包 Install-Package Mi ...
- ASP.NET Core 3.1 WebApi+JWT+Swagger+EntityFrameworkCore构建REST API
一.准备 使用vs2019新建ASP.NET Core Web应用程序,选用api模板: 安装相关的NuGet包: 二.编码 首先编写数据库模型: 用户表 User.cs: public class ...
- ASP.NET Core 1.0 开发记录
官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...
随机推荐
- Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器
专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...
- sys模块学习记录
import sys s = sys.argv #命令行参数List,第一个元素是程序本身路径 #sys.exit() #退出程序,正常退出时exit(0) s = sys.version #获取Py ...
- linux挂载硬盘分区
[转]https://www.jb51.net/article/138204.htm 基本步骤:分区——格式化——挂载——写入文件 1.使用fdisk -l命令查看添加的硬盘名称,可以看到sdb ...
- java高并发实战(二)——线程(并行程序)基础
转自:https://blog.csdn.net/gududedabai/article/details/80815666
- C# Func与Action
Func与Action是C#的内置委托,在使用委托时,可不必再定义. (1)Func:有返回类型的委托. Func类型的委托,肯定有一个返回类型,如果Func只有一个参数,那么它就是代表没有参数但是有 ...
- POI--各种样式的XSSFCellStyle的生成
//背景色.フォント色.枠線より各種XSSFCellStyleの作成して.cellStyleMapに保存する private HashMap<String, XSSFCellStyle> ...
- 可视化n次贝塞尔曲线及过程动画演示--大宝剑
起因 研究css中提供了2次.3次bezier,但是没有对n次bezier实现.对n次的实现有很大兴趣,所以就用js的canvas搞一下,顺便把过程动画模拟了一下. 投入真实生产之中,偏少. n次be ...
- 使用python备份文件
想写个定时备份文件的功能,这个功能需要实现:1.搜索指定的目录里是否存在当天的文件2.如果存在压缩并加密文件3.通过ftp上传到备份服务器4.在备份服务器上定时将文件拷贝到移动硬盘并定时清理文件 本来 ...
- lucene复合条件查询案例——查询name域 或 description域 包含lucene关键字的两种方式
方式一:使用语法表达式查询 //查询name域 或 description域包含lucene关键字 QueryParser queryParser = new QueryParser("na ...
- spring框架校验自定义注解
起因: 项目开发时遇到一个问题是对于金额类型的字段,数据库中格式一般为BigDecimal类型,两位小数点,然后在接口定义中如果不定义成String类型的话,就不能使用@pattern注解限定格式,而 ...