Visual Studio 2013/2017 ASP.NET 項目使用 MySQL 數據庫的配置過程

前言

一直以來習慣在 ASP.NET 項目中使用 Entity Framework,長期來開發的項目一般都用了微軟自家的 SQL Server 數據庫,在 Visual Studio 中直接使用 SQL Server 是很簡單的。但是一些項目的需要會使用 Oracle 或者 MySQL,這里記錄下項目使用 Entity Framework 并使用 MySQL 的配置過程。

網上搜相關關鍵字會出現一大堆教程,但是也五花八門,一開始得到方法是,只需要使用 NuGet 安裝 MySql.Data.EntityMySql.Data 包即可,使用 NuGet 的好處是自動會在 Web.config 文件中創建相關配置節。這里參考的 [Entity Framework] MySQL @ Entity Framework 6 進行了手動添加。不過我的過程和這個有些出入。

安裝過程

安裝依賴包

按照上面說的方式,直接使用 NuGet 安裝 MySql.Data.EntityMySql.Data 包, Web.config 文件中也自動添加了如下配置節:

<providers> 
    ...
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> 
</providers> 
<system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>

報錯

我的項目中會使用 DB First 向導方式創建數據庫實體,一路下一步后會提示不兼容實體框架:

在上面的參考文章中,在 Web.config 文件中創建相關配置節后問題解決了。但我的項目是自動生成的,而且并沒有問題。

官網解決方案

在 MySQL 官網看到了一個 MySQL for Visual Studio 工具,讀了下安裝說明,照著安裝后問題解決了。

官網上的 MySQL for Visual Studio / Installing and Configuring 說了兩個比較關鍵的提示:

Note
Many MySQL for Visual Studio features require MySQL Connector/Net installed on the same system, and MySQL Connector/Net is a separate download. Install both using MySQL Installer.

需要同時安裝 MySQL for Visual Studio 和 MySQL Connector/Net。

Important
Always install MySQL for Visual Studio before installing MySQL Connector/Net.

MySQL Connector/Net 必須要在 MySQL for Visual Studio 安裝之后才能安裝。

按照官網的方法下載兩個安裝包安裝后,以上問題順利解決。

其他

創建數據庫連接可以注意如下選擇:

連接可以使用服務器資源管理器創建。

也可以在 connectionStrings 配置節中增加,形式如下:

<connectionStrings>    
    <add name="MySqlConnection" connectionString="server=localhost;user id=root;password=root;database=dbname" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

總結

按照官方推薦的方案,ASP.NET 項目使用 MySQL 數據庫的配置如下,注意按照順序進行,同時,這里假設使用的是 Entity Framework ORM 方案,如果不用 Entity Framework,猜測只需要安裝 MySql.Data (未驗證)。

  1. 安裝 MySQL for Visual Studio
  2. 安裝 MySQL Connector/Net
  3. 使用 NuGet 安裝 MySql.Data.EntityMySql.Data
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容