一.工具及環境
Visual Studio 2017 15.4.3
MySql
Navicat for MySQL
二.Entity Framwork Core 2.0 MySql Code First 及 數據庫遷移(Migrations)
1.創建Asp.Ner Core 應用程序
選擇Web應用程序(其實選空模板也是可以的,隨心情吧)
2.項目創建完成之后通過程序包管理器控制台,引入下面兩個包
或者右鍵當前項目然后右鍵選擇管理Nuget程序包
搜索 Microsoft.EntityFrameworkCore.Tools及 Pomelo.EntityFrameworkCore.MySql 然后安裝就可以了
3.編輯 Asp.Net_Core_Demo 項目文件
內容如下

1 <Project Sdk="Microsoft.NET.Sdk.Web"> 2 <PropertyGroup> 3 <TargetFramework>netcoreapp2.0</TargetFramework> 4 </PropertyGroup> 5 <ItemGroup> 6 <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /> 7 <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" /> 8 <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.0.0" /> 9 </ItemGroup> 10 <ItemGroup> 11 <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 12 </ItemGroup> 13 </Project>
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<DataContext> options) : base(options) { } public DbSet<User> 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<DataContext>(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列
11.最后附一張項目的結構
參考文章:http://www.cnblogs.com/Starts_2000/p/mysql-efcore20-codefirst-dbfirst-migration-demo.html