一.工具及環境
Visual Studio 2017 15.4.3
MySql
Navicat for MySQL
二.Entity Framwork Core 2.0 MySql Code First 及 資料庫遷移(Migrations)
1.建立Asp.Ner Core 應用程式
2.項目建立完成之後通過程式包管理器控制台,引入下面兩個包
搜尋 Microsoft.EntityFrameworkCore.Tools及 Pomelo.EntityFrameworkCore.MySql 然後安裝就可以了
3.編輯 項目檔案,增加這段。通過NuGet安裝不來
4.建立User類
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Age { get; set; }
}
5.添加DataContext類
public class DataContext : DbContext
{
public DataContext(DbContextOptions options)
: base(options)
{
}
public DbSet Users { get; set; }
}
6.打開Startup.cs 在ConfigurationServices方法中添加連接配接MySql的相關代碼
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//這裡就是填寫資料庫的連接配接字元串
var connection = "Server=localhost;Port=3306;Database=TestMySql; User=root;Password=;";
services.AddDbContextPool(options => options.UseMySql(connection));
}
7.在項目根目錄,按Shift+滑鼠右鍵,選擇打開PowerShell(如果是打開cmd也是可以的)
8.輸入 dotnet ef Migrations add Init
9.執行成功之後,輸入 dotnet ef database update
執行成功後,可以看到資料庫建立成功
10.修改實體,并把修改的實體更新到資料庫(其實就是增加一些列)
這裡增加了Email列,但是這時資料庫還沒有Email列,接下來我們通過指令更新到資料庫中
上圖指令其實跟剛開始 dotnet ef Migrations add Init 性質是一樣的,隻要你更改了代碼中的實體,然後想要更新到資料庫中
就是執行 dotnet ef add Migrations add 自定義名稱(注意是英文名稱)
然後執行 dotnet ef database update 執行成功之後,可以看到資料庫中也添加了剛才我們增加User實體中的Email列
另一種方法是在VS菜單》視圖》其它視窗》程式包管理器控制台:
enable-migrations
add-migration init
update-database