使用ABP EntityFramework连接MySQL数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用ABP EntityFramework连接MySQL数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3633字,纯文字阅读大概需要6分钟。
内容图文
![使用ABP EntityFramework连接MySQL数据库](/upload/InfoBanner/zyjiaocheng/469/d129c15b332e453aaad29db872ada5c4.jpg)
关于这个框架的介绍我就不多说,有兴趣的可以参见官方文档:http://www.aspnetboilerplate.com/Pages/Documents
使用ABP+EF+SQL Server是比较推荐的组合,但是既然我们使用的是EF,那么就应该是和数据库分离的,也就意味着我们应该可以采用其他的数据库,比如MySQL。
ABP初始化的项目模板还提供了Module Zero项目,为我们提供了用户、角色、权限等等通用功能,但是在使用初始化的模板连接MySQL却会报错,无法运行,下面我来解决ABP+MySQL的问题。这是操作步骤:
1.从官方网站下载ABP项目模板,并解压到本地,用VS打开,这里我们新建一个项目ConnectMySql。
2.设置XXX.Web为启动项目,Build这个Solution,使得NuGet下载相关的包。
3.准备好一个SQL Server数据库,修改Web.config数据库的ConnectionString,连接到SQL Server数据库。
4.打开Package Manager Console窗口,选择XXX.EntityFramework为默认项目,运行Update-Database命令,系统会在SQL Server中创建数据库和对应的表。
5.打开SSMS,连接到上一步新建的数据库,选择生成脚本命令,并在高级选项中选择“Schema and data”生成一个创建表和填充数据的脚本文件。
6.接下来就是比较繁琐的SQL Server脚本转MySQL脚本了,我采用NotePad++,做了多次的批量替换,把脚本转换成MySQL支持的内容。
为了方便大家,我直接把转换好的SQL脚本放出,大家直接运行即可。 脚本下载
7.打开MySQL Server,新建一个MySQL数据库,并运行前一步骤准备好的脚本。
8.我们回到VS,为XXX.EntityFramework和XXX.Web,通过Nuget添加MySql.Data.Entity:
9.打开Web项目的Web.config,由于上一步添加了MySql.Data.Entity,所以Web.config已经添加了MySql的相关配置。我们只需要修改连接字符串,注释掉SQL Server的字符串,添加新的连接字符串:
<add name="Default" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;port=3306;database=test;uid=root;password=xxx" />
10.打开EntityFramework项目的Configuration对象,在Migrations文件夹中,修改构造函数,指定使用MySQL的SQL生成器。
public Configuration()
{
AutomaticMigrationsEnabled = false;
ContextKey = "ConnectMySql";
SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
}
11.现在我们来试一试是否可以针对MySQL使用EF的Code First。我们在XXX.Core中创建一个测试用的实体Student:
public class Student:Entity
{
[StringLength(50)]
public string Name { get; set; }
public DateTime Birthdate { get; set; }
public bool Gender { get; set; }
}
12.在XXX.EntityFramework中找到ConnectMySqlDbContext,并添加Student的应用:
public class ConnectMySqlDbContext : AbpZeroDbContext<Tenant, Role, User>
{
//TODO: Define an IDbSet for your Entities...
public IDbSet<Student> Students { get; set; }
/* NOTE:
* Setting "Default" to base class helps us when working migration commands on Package Manager Console.
* But it may cause problems when working Migrate.exe of EF. If you will apply migrations on command line, do not
* pass connection string name to base classes. ABP works either way.
*/
public ConnectMySqlDbContext()
: base("Default")
{
}
……
13.我们编译一下这个Solution,然后在Package Manager Console窗口中,输入命令Add-Migration AddStudent,这里的AddStudent是对我们这次更改的一个命令。命令运行完成后,在Migrations文件夹中,会创建升级数据库的C#代码。
14.继续在Package Manager Console窗口中,输入命令Update-Database,系统会将数据库更改应用到我们的MySQL数据库中。
15.我们到MySQL数据库中,刷新,可以看到系统自动创建了Students数据库:
16.最后,我们Build整个Solution,运行网站,可以看到我们网站正常运行了。
使用ABP EntityFramework连接MySQL数据库
标签:
本文系统来源:http://www.cnblogs.com/studyzy/p/5850992.html
内容总结
以上是互联网集市为您收集整理的使用ABP EntityFramework连接MySQL数据库全部内容,希望文章能够帮你解决使用ABP EntityFramework连接MySQL数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。