最近發現了一款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