首先要準備一下的工具作為環境 MySQL Community Server 5.7.x My Workbench 6.3 VS2017 新建一個項目,NetMySQLCodeFirst 選擇MVC,再選擇無用戶驗證 然後通過NuGet包管理器安裝三個包,安裝最新穩定版本即可 EntityFramew ...
首先要準備一下的工具作為環境
- MySQL Community Server 5.7.x
- My Workbench 6.3
- VS2017
新建一個項目,NetMySQLCodeFirst
選擇MVC,再選擇無用戶驗證
然後通過NuGet包管理器安裝三個包,安裝最新穩定版本即可
- EntityFramework
- MySql.Data
- MySql.Data.Entity
緊接著在Models文件裡面新建一個類Lexan
public Guid LexanID { get; set; } public string LexanName { get; set; } public int LexanAge { get; set; } public string LexanImage { get; set;
再繼續在Models文件裡面建一個類Category
public Guid CategoryID { get; set; } public string CategoryName { get; set; }
繼續在Models文件裡面建一個類CodeFirstContext
public DbSet<Lexan> Lexans { get; set; } public DbSet<Category> Categories { get; set; }
在根目錄下修改Web.Config文件,併在system.web的標簽前面添加如下代碼,表示連接.Net 連接MySQL字元串,密碼是自己的root的登陸密碼,根據實際情況修改
<connectionStrings> <add name="CodeFirstContext" connectionString="Data Source=localhost;port=3306; Initial Catalog=LexanCodeFirstDB;uid=root; pwd=******" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
完成上面的工作以後,接下來做的工作就是在NuGet的控制台去,更新我們的資料庫代碼後的連接設置實現我們通過LexanCodeFirstDb的資料庫名已啟用並將添加新的遷移。為此, 我們使用軟體包管理器控制台。在控制台執行如下命令
enable-migrations
這個時候因為執行了enable-migrations命令,項目中會自動的生成Migrations文件夾,然後到這個文件夾裡面去修改Configuration類裡面的Configuration方法,添加如下的代碼
AutomaticMigrationsEnabled = true; SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
再繼續往NuGet的控制台里輸入一下代碼,執行數據的遷移,有提示輸入名字,這個名字和項目名字是不同的
add-migration
mysql的資料庫引擎代碼端使用預設創建的結構, 主鍵也會為提到的區域返回此錯誤。作為此解決方案, 我們將再次升級我們的上下文模型如下。以前, 類似於我們在上面設置的 SqlGenerator, 然後去修改codeFirstContext類,如下所示
繼續在NuGet控制台執行如下代碼更新資料庫
update-database
到這裡我們的工作全部完成了,我們看看沒有遷移時候MySQL數據
再來看看錢以後的資料庫
成功了!