在Abp框架中使用Mysql數據庫的方法以及相關問題小記


最近發現了一款DDD的框架

 

看起來不錯,據說挺流弊的

 

剛好最近要弄點小東西,拿來試試也不錯

 

苦於窮逼買不起高配服務器,只好裝mysql數據庫了

 

下面說下如何在該框架下使用Mysql數據庫

 

打開項目后,在“程序包管理器控制平台”中選擇*.EntityFramwork以及*.Web項目(*號為你的項目名稱前綴)

 

Install-Package MySql.Data.Entity // Install-Package MySql.Data.Entity   - 安裝MySql.Data.Entity組件的命令

輸入以上語句安裝Mysql的相關組件

 

然后更改連接字符串

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6" />//這里可以看到以及自動為我們引用了mysql的相關項
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  
<connectionStrings>
<add name="Default" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;port=3306;database=sampledb;uid=root;password=root" />
</connectionStrings>

 

然后在“程序包管理控制平台”更新數據庫

 Update-Database –Verbose

至此,我們就可以使用該項目連接mysql數據庫了

 

實踐之中,經常會出現一些想不到的問題

 

這里記下我自己遇到的幾個小問題

 

1、更新數據庫時提示“Specified key was too long; max key length is 767 bytes

這個問題一般是由於(我認為,歡迎dalao指導)數據庫生成器配置不正確導致的,MSSql的相關配置在Mysql里並不是全部適用

這時需要在Dbcontext類上指定生成器的類型

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class MyContext : DbContext{}

這里的MyContext為你的EF相關類

 

2、Unknown storage engine 'InnoDb'

這種情況就比較少見了

這是mysql默認引擎未開啟InnoDb導致的

需要更改一下mysql的相關配置

有兩種解決方法:

        方法一.修改my.ini文件,把skip-innodb這行注釋掉
        方法二.修改my.ini文件,default-storage-engine=InnoDb


免責聲明!

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



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