ASP.Net MVC連接MySQL和Code First的使用

首先要準備一下的工具作爲環境

  • 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數據

再來看看錢以後的數據庫

成功了!

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章