首页 > 代码库 > 在Abp框架中使用Mysql数据库的方法以及相关问题小记

在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、忘了,想起来再写吧

在Abp框架中使用Mysql数据库的方法以及相关问题小记