EFCore CodeFirst 連接MySql


一.工具及環境

 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>
View Code

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM