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

再來看看錢以后的數據庫

成功了!

 


免責聲明!

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



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