1. 程式人生 > >ABP中把EF訪問sql server改為mysql

ABP中把EF訪問sql server改為mysql

  1. 在EntityFramewor和Web工程中通過nuget新增mysql.data.entity引用, 預設最新的是6.10。4

  2. 在web工程的web.config檔案中更改連線字串為mysql, 如下:

            <connectionStrings>

        <add name="Default" connectionString="Server=localhost;port=3306;Database=AbpDemo;uid=root;password=111111" providerName="MySql.Data.MySqlClient" />

      </connectionStrings>

  1. 在EntityFramework工程裡的Configuration類中新增mysql的遷移支援:

        SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());   

  1. 在Package Manager Console執行update-database命令,

 

        報錯

        

 

        解決辦法是:  用nuget把entityFramework和web工程中的mysql.data.entity降級為6.9.10. 

 

  1.  重新在Package Manager Console執行update-database,

        報錯

        

 

        解決辦法是: 在EntityFramework工程裡的xxxDbContext類頭新增[DbConfigurationType(typeof(MySqlEFConfiguration))]屬性。

        例如:

        

 

  1. 重新在Package Manager Console中執行update-database, 成功。

        

 

 

參考:https://aspnetboilerplate.com/Pages/Documents/EF-MySql-Integration