前言
一直以來習慣在 ASP.NET 項目中使用 Entity Framework,長期來開發的項目一般都用了微軟自家的 SQL Server 數據庫,在 Visual Studio 中直接使用 SQL Server 是很簡單的。但是一些項目的需要會使用 Oracle 或者 MySQL,這里記錄下項目使用 Entity Framework 并使用 MySQL 的配置過程。
網上搜相關關鍵字會出現一大堆教程,但是也五花八門,一開始得到方法是,只需要使用 NuGet 安裝 MySql.Data.Entity
和 MySql.Data
包即可,使用 NuGet 的好處是自動會在 Web.config
文件中創建相關配置節。這里參考的 [Entity Framework] MySQL @ Entity Framework 6 進行了手動添加。不過我的過程和這個有些出入。
安裝過程
安裝依賴包
按照上面說的方式,直接使用 NuGet 安裝 MySql.Data.Entity
和 MySql.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
(未驗證)。
- 安裝 MySQL for Visual Studio
- 安裝 MySQL Connector/Net
- 使用 NuGet 安裝
MySql.Data.Entity
和MySql.Data
包