NetCore 最近很火热。笔者想把自己以前的旧项目迁移到NetCore平台。
先用EFcore的DBFirst根据数据库创建实体类,然后加入数据库版本控制功能也就是EFcore的CodeFirst部分。
引入包 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCoreInstall-Package Microsoft.EntityFrameworkCore.SqlServer
先 DBFirst一下 Scaffold-DbContext "Data Source=(localdb)\v11.0;Initial Catalog=master;Integrated Security=True;" -OutputDir Models 很简单,但有时会报错:Build failed. 这个是因为整个项目编译不成功导致的,要确保项目能正常编译成功 再 CodeFirst一下 Add-Migration Init -c EcolDbContext
-c 是指定 DbContext 根据自身情况可以不加 生成的项目目录如下
20181016075837_Init.cs 是指当时生成的日期和 Add-Migration Init的 Init组合而成
在项目数据库里执行一下语句。 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 TestAddData2 {3 public long Id { get; set; }4 5 public string Name { get; set; }6 }
在DBContext类里加
public virtual DbSetTestAddData { get; set; }
执行 包管理命令
Add-Migration AddTable -c EcolDbContextupdate-database -Context EcolDbContext
其他修改也一样
希望对大家有帮助,谢谢观看