NetCore 最近很火热。笔者想把本身之前的旧项目迁移到NetCore平台。sql
先用EFcore的DBFirst根据数据库建立实体类,而后加入数据库版本控制功能也就是EFcore的CodeFirst部分。数据库
引入包 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.SqlServerui
Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.SqlServer
这个是由于整个项目编译不成功致使的,要确保项目能正常编译成功
Add-Migration Init -c EcolDbContext
先 DBFirst一下
Scaffold-DbContext "Data Source=(localdb)\v11.0;Initial Catalog=master;Integrated Security=True;" -OutputDir Models
很简单,但有时会报错:Build failed.再 CodeFirst一下
-c 是指定 DbContext 根据自身状况能够不加
生成的项目目录以下

20181016075837_Init.cs 是指当时生成的日期和 Add-Migration Init的 Init组合而成 spa
在项目数据库里执行一下语句。
CREATE TABLE [dbo].[__EFMigrationsHistory] (
[MigrationId] NVARCHAR (150) NOT NULL,
[ProductVersion] NVARCHAR (32) NOT NULL
);
手动插入数据
insert into ( MigrationId ,ProductVersion) values ('20181016075837_Init' ,'init')
这样之后就能够用 CodeFirst模式升级数据库了
如今简单演示下如何添加表
新建类TestTableData
1 public class TestAddData 2 { 3 public long Id { get; set; } 4 5 public string Name { get; set; } 6 }
在DBContext类里加
public virtual DbSet<TestAddData> TestAddData { get; set; }
执行 包管理命令版本控制
Add-Migration AddTable -c EcolDbContext
update-database -Context EcolDbContext
其余修改也同样code
但愿对你们有帮助,谢谢观看blog