NET Core 使用EF Core的Code First迁移和DBFirst
DBFirst
(1)Microsoft.EntityFrameworkCore
(2)Microsoft.EntityFrameworkCore.Design
(3)Microsoft.EntityFrameworkCore.SqlServer
(4)Microsoft.EntityFrameworkCore.Tools
从VS的菜单栏"工具"选项中打开"程序包管理器(Package Manager)控制台"再输入:
Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"
-OutputDir "Models" 会在项目中添加models文件夹,生成的context和实体类都放到models文件夹中,如不加,实体则直接生成到项目中

Code First
首先创建dbContext和Model实体
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string CompanyName { get; set; }
public string Email { get; set; }
public int age { get; set; }
}
public class dbContext : DbContext
{
public dbContext(DbContextOptions<dbContext> options) : base(options)
{ }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().HasData(
new Employee() { EmployeeId = 1, Name = "Robin", Address = "上海", CompanyName = "腾讯", Email = "Robin@tengxun.com", age = 22 },
new Employee() { EmployeeId = 2, Name = "Susan", Address = "北京", CompanyName = "头条", Email = "Susan@toutiao.com", age = 20 });
}
public virtual DbSet<Employee> Employee { get; set; }
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings": {
"SqlConn": "data source=.;Initial Catalog=UserInfo;User ID=sa;Password=123456;MultipleActiveResultSets=True;App=EntityFramework;"
},
"AllowedHosts": "*"
}

下面可以使用Entity Framework Core Migrations生成数据库和表了。
从VS的菜单栏"工具"选项中打开"程序包管理器(Package Manager)控制台",然后选择要为其生成迁移代码的默认项目,这里选择的项目是我们的EFCoreMigration。
为了创建迁移代码文件,需要使用“ add-migration MigrationName”命令。这里我们就把MigrationName的文件名称改为MigrationDB,在Package Manager控制台中,只需键入“ add-migration MigrationDB”命令,然后按Enter。

成功执行add-migration命令后,它将在项目中创建一个名为“ Migrations”的文件夹,并使用在执行带有迁移脚本文件名称的add migration命令时提供的名称MigrationDB创建该类。在这个MigrationDB类中可以看到基于模型(员工)的表结构,该表结构已准备好生成数据库。

我们仅创建了负责创建数据库及其表的迁移脚本。但是我们还没有创建实际的数据库和表。这就需要执行生成好的迁移脚本,用于生成实际的数据库和表。执行迁移脚本的命令用“ update-database”。
目前,我们只有一个迁移脚本,所以不需要提供迁移名称,直接用update-database命令。如果我们有多个迁移脚本,则必须提供名称以及命令update-database MigrationDB,如下所示:

上面的命令成功执行后,打开SQL Server Management Studio查看数据库。将找到Code First迁移进来的数据库EmployeeDB、数据库表Employees和Entity Framework迁移历史记录表__EFMigrationsHistory

现在,修改Employee模型,并添加一个新的属性字段,如薪水Salary,其类型为float。
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string CompanyName { get; set; }
public string Email { get; set; }
public int age { get; set; }
public float Salary { get; set; }
}
转到程序包管理器控制台并运行以下命令以添加迁移文件,这一次,我们将迁移的名称指定为“ addsalary”。
add-migration addsalary
了使用新列Salary作为薪水来更新数据库中的表,需要在程序包管理器控制台运行以下命令来更新数据库:
update-database addsalary

更多详情https://blog.csdn.net/ananlele_/article/details/107140177
NET Core 使用EF Core的Code First迁移和DBFirst的更多相关文章
- net Core 通过 Ef Core 访问、管理Mysql
net Core 通过 Ef Core 访问.管理Mysql 本文地址:http://www.cnblogs.com/likeli/p/5910524.html 环境 dotnet Core版本:1. ...
- .net core webapi+EF Core
.net core webapi+EF Core 一.描述: EF Core必须下载.net core2.0版本 Micorsoft.EntityFrameworkCore:EF框架的核心包Micor ...
- ASP.NET CORE 使用 EF CORE访问数据库
asp.net core通过ef core来访问数据库,这里用的是代码优先,通过迁移来同步数据库与模型. 环境:vs2017,win10,asp.net core 2.1 一.从建立asp.net c ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
- asp.net core + mysql + ef core + linux
asp.net core + mysql + ef core + linux 以前开发网站是针对windows平台,在iis上部署.由于这次需求的目标服务器是linux系统,就尝试用跨平台的.NET ...
- Entity Framework Core(EF Core) 最简单的入门示例
目录 概述 基于 .NET Core 的 EF Core 入门 创建新项目 更改当前目录 安装 Entity Framework Core 创建模型 创建数据库 使用模型 基于 ASP.NET Cor ...
- 【ASP.NET Core】EF Core - “影子属性” 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1
[ASP.NET Core]EF Core - “影子属性” 有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. ...
- 一个官翻教程集合:ASP.NET Core 和 EF Core 系列教程
通过一个大学课程案例讲解了复杂实体的创建过程及讲解 1.ASP.NET Core 和 Entity Framework Core 系列教程——入门 (1 / 10) 2.ASP.NET Core 和 ...
- [.NET Core] - 使用 EF Core 的 Scaffold-DbContext 脚手架命令创建 DbContext
Scaffold-DbContext 命令 参数 Scaffold-DbContext [-Connection] <String> [-Provider] <String> ...
随机推荐
- Docker安装基本命令操作,带你了解镜像和容器的概念!
上一章节我们了解了Docker的基本概念,以及相关原理.这一章节进行实操. <Docker这么火爆.章节一:带你详尽了解Docker容器的介绍及使用> 一.Docker安装 声明:Dock ...
- 关于Jersey框架下的Aop日志 和Spring 框架下的Aop日志
摘要 最近新接手的项目经常要查问题,但是,前面一拨人,日志打的非常乱,好多就根本没有打日志,所以弄一个AOP统一打印一下 请求数据和响应数据 框架 spring+springmvc+jersey 正文 ...
- VC与VB
VB调用VC dll的返回方式 第一种类型:数值传递注意:在VB中,默认变量传递方式为ByRef为地址,而传递值就是用ByVal,还要注意在C++中,int类型的变量是32位的,在VB中要用long型 ...
- tomcat安装及环境变量配置
java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意安装的路径,我们需要进行环境变量的配置. 2 安装完成以后,配置环境变量 环境变量的配置这里就以win7为例:右击计算 ...
- linux系统下oracle表空间占用情况
1.我们先查询表空间的占用情况,使用sql如下: select upper(f.tablespace_name) "表空间名", d.tot_grootte_mb "表空 ...
- Mybatis学习-配置、作用域和生命周期
核心配置文件:Mybatis-config.xml Mybatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息 配置(configuration) 在mybatis-config.xm ...
- 第11.18节 Python 中re模块的匹配对象
匹配对象是Python中re模块正则表达式匹配处理的返回结果,用于存放匹配的情况.老猿认为匹配对象更多的应该是与组匹配模式的功能对应的,只是没有使用组匹配模式的正则表达式整体作为组0. 为了说明下面的 ...
- CVE申请+挖掘指南
CVE的全称是"Common Vulnerabilities and Exposures"翻译成中文就是"公共漏洞和披露" 可以简单理解跟国内CNVD的通用漏洞 ...
- jmeter使用中的问题
1.响应乱码 step1:指定请求节点下,新建后置控制器"BeanShell PostProcessor" step2:其脚本框中输入以下代码,保存 //获取响应代码Unicode ...
- Libp2p 简介
这是一个翻译的系列文章,原文参考:Introduction :: libp2p Documentation 欢迎来阅读libp2p相关文档,不论你是刚开始学习如何用libp2p来搭建P2P系统, 还是 ...