1. 程式人生 > >ASP.Net MVC連接MySQL和Code First的使用

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

config文件 onf tsql .com mysql字符串 spa set web 不同

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

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

技術分享

再來看看錢以後的數據庫

技術分享

技術分享

成功了!

技術分享

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