NetCore 最近很火熱。筆者想把自己以前的舊項目遷移到NetCore平台。
先用EFcore的DBFirst根據數據庫創建實體類,然后加入數據庫版本控制功能也就是EFcore的CodeFirst部分。
引入包 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore Install-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 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
其他修改也一樣
希望對大家有幫助,謝謝觀看
