Abp vNext 切换MySql数据库
Abp vNext是Abp的下一代版本,目前还在经一步完善,代码已经全部重写了,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的。
从源码来看,Abp vNext已经支持了多种数据库,Sql Server,MySql,PostgreSql等。默认情况下,你创建的项目使用的是Sql Server版本,如果需要切换到MySql的话,仅需要:
第一步,在你的EntityFrameworkCore(Abp的EF框架模块,用来创建DbContext,数据迁移用的)中,从NuGet中安装Volo.Abp.EntifyFrameworkCore.MySql
第二步,打开TGDbContextFactory.cs
第三部,修改代码:
public TGDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<TGDbContext>()
.UseSqlServer(configuration.GetConnectionString("Default"));
return new TGDbContext(builder.Options);
}
改成
public TGDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<TGDbContext>()
.UseMySQL(configuration.GetConnectionString("Default"));
return new TGDbContext(builder.Options);
}
原本以为这样就能ok的,update-database的时候一堆错误,去issue上看了下,都有这个问题,有人建议用Pomele的MySql驱动,还提了PR,当我今天(3月9号)去看的时候PR已经通过,但Nuget包还未更新。
自给自足丰衣足食,自己来吧,其实非常简单
先去掉刚引入的Volo.Abp.EntityFrameworkCore.MySql,然后引入Pomelo.EntityFrameworkCore.MySql,随后上述代码改为:
public TGDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<TGDbContext>()
.UseMySql(configuration.GetConnectionString("Default"));
return new TGDbContext(builder.Options);
}
ok,简单改造完成,我们再来update-database,我们的创建顺利的完成了。
你以为结束了吗,幼稚!默认启动的时候他还是会选择Sql Server,我们看下代码,在Web项目下的xxWebModule.cs,xx是你的项目名,这个是我们web的Module文件,我们知道Abp是一个Module加载的框架。在这个项目中同样引入Pomelo.EntityFrameworkCore.MySql,随后修改ConfigureDatabaseServices方法,
private void ConfigureDatabaseServices()
{
Configure<AbpDbContextOptions>(options =>
{
options.Configure(context =>
{
if (context.ExistingConnection != null)
{
context.DbContextOptions.UseMySql(context.ExistingConnection);
}
else
{
context.DbContextOptions.UseMySql(context.ConnectionString);
}
});
});
}
改完以上的代码,你就可以顺利启动Abp vNext for MySql了。
改的不是很优雅,毕竟下一个版本应该会解决这个问题。之前用Abp Core做了小程序并放到了生产环境,启动慢了点,但是运行什么都比较稳定,开发也比较便捷,看了Abp vNext后,感觉一种小清新,相信在不久之后,我会使用它放到生产环境。其实一些老鸟的话,自己都有自己的框架,说实在的,Abp的好处就在于能够让大家有一种统一的快速的开发方式。
PS:陪儿子写字写了3个小时,写1个字发呆5分钟以上,能理解这种痛苦吗?
Abp vNext 切换MySql数据库的更多相关文章
- ABP学习之路--切换mysql数据库
1.添加mysql相关引用 注意,使用最新版本会导数据迁移时出错 2.修改链接字符串: <add name="Default" connectionString=" ...
- ABP入门系列(21)——切换MySQL数据库
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 Abp支持MySql已经不是什么新鲜事了,但按照官方文档:Entity Framewo ...
- ABP框架使用Mysql数据库,以及基于SQLServer创建Mysql数据库的架构和数据
ABP默认的数据库是SQLServer,不过ABP框架底层是EF框架,因此也是很容易支持其他类型的数据库的,本篇随笔介绍在ABP框架使用Mysql数据库,以及基于SQLServer创建MySql数据库 ...
- ABP框架(asp.net core 2.X+Vue)模板项目学习之路(二)--切换MySql数据库
前言: 大家好,今天给大家带来ABP第二篇的分享,在写这篇分享的时候非常的困难,因为发现ABP的框架越是深入.难度也就越大,而且深刻感觉到自己领域驱动开发知识的欠缺,前段时间买了两本有关于领域驱动知识 ...
- ABP——切换MySQL数据库
我是一名.net新手,应公司要求开始学习.net,使用的是土耳其大牛写的框架ASP.NET Boilerplate 简称ABP,是基于DDD的现代ASP.NET开发框架,ABP提供了一个启动模板用于新 ...
- ABP 切换mysql 数据库报错mysqlexception: incorrect string value: ‘\xe7\xae\x80\xe4\xbd\x93…’ for column display name
刚折腾了ABP框架,为了跨平台,将SQL Server数据库换成了MySQL数据库,ABP框架上支持多语言,中间被字符集折腾的够呛,翻了N个博客,最后终于在StackOverFlow 上找到了最终的解 ...
- 使用ABP EntityFramework连接MySQL数据库
ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用. 关于这个框架的介绍我就不多说,有兴趣的可以参见 ...
- ABP框架连接Mysql数据库
开始想用Abp框架来搭建公司的新项目,虽然一切还没有定数,但是兵马未动,粮草先行,我先尝试一下整个过程,才能够更好的去争取机会. 此次技术选型:Abp(Asp.Net core mvc)+mysql( ...
- ABP框架使用Mysql数据库
参考文档:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese/blob/master/Markdown/Abp/9.4ABP%E5%9F% ...
随机推荐
- C语言之递归
递归例子如下: #include <stdio.h> /*函数声明*/ void digui(int n); int main() { ; digui(n); ; } void digui ...
- 多线程(2)Thread
我们先从最基础的Thread说起. 创建并启动线程 创建并启动一个线程,如下代码: namespace ConsoleApplication17 { class Program { static vo ...
- 浏览器与Node的事件循环(Event Loop)有何区别?
前言 本文我们将会介绍 JS 实现异步的原理,并且了解了在浏览器和 Node 中 Event Loop 其实是不相同的. 一.线程与进程 1. 概念 我们经常说 JS 是单线程执行的,指的是一个进程里 ...
- 关于js中close()方法的兼容性问题
在Firefox中使用close()方法无法关闭窗前窗口 控制台会输出 “脚本不得关闭非脚本打开的窗口.” 解决办法:在浏览器地址栏中输入 about:config 在配置列表中找到 dom.a ...
- ionic3 Loading组件的用法
import { LoadingController } from 'ionic-angular'; @Component({ selector: 'page-contact', templateUr ...
- C++ 11 创建和使用共享 weak_ptr
1.为什么需要weak_ptr? 在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识.我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以 ...
- SQLServer数据库维护(一)碎片检查整理
一.碎片查看维护 dbcc showcontig('表名') dbcc showcontig ('T_NOFITSTUDY') 结果如下: DBCC SHOWCONTIG 正在扫描 'T_NOFITS ...
- c#高级编程_第10版 云盘地址
下载地址 链接:https://pan.baidu.com/s/1u8PcY4RJhRB1yfm-2XaTEQ 密码:159z
- LNMP时,出现502 Bad Gateway的错误提示
因为工作需要,要在ubuntu中安装LNMP环境,在这里,php是最新版本php7.1.一切都进展得很顺利,安装完成后,在浏览器中输入http://127.0.0.1/info.php,出现了502 ...
- JavaScript -- JSON.parse 函数 和 JSON.stringify 函数
JavaScript -- JSON.parse 函数 和 JSON.stringify 函数 1. JSON.parse 函数: 使用 JSON.parse 可将 JSON 字符串转换成对象. &l ...