ABP中把EF訪問sql server改為mysql
-
在EntityFramewor和Web工程中通過nuget新增mysql.data.entity引用, 預設最新的是6.10。4
-
在web工程的web.config檔案中更改連線字串為mysql, 如下:
<connectionStrings>
<add name="Default" connectionString="Server=localhost;port=3306;Database=AbpDemo;uid=root;password=111111" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
-
在EntityFramework工程裡的Configuration類中新增mysql的遷移支援:
SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
-
在Package Manager Console執行update-database命令,
報錯
解決辦法是: 用nuget把entityFramework和web工程中的mysql.data.entity降級為6.9.10.
-
重新在Package Manager Console執行update-database,
報錯
解決辦法是: 在EntityFramework工程裡的xxxDbContext類頭新增[DbConfigurationType(typeof(MySqlEFConfiguration))]屬性。
例如:
-
重新在Package Manager Console中執行update-database, 成功。
參考:https://aspnetboilerplate.com/Pages/Documents/EF-MySql-Integration