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% ...
随机推荐
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU特性介绍(3)- 命名规则
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的命名规则. 打开任何一款i.MX RT系列芯片的Data Sheet均可找到如下命名规则表,以i.MX ...
- #4 Python面向对象(三)
前言 前两节讲解了Python面向对象的思想和Python类中各种变量的含义以及区别.肯定有小伙伴会问,类初始化时是否可以传入参数?如果有多个类中含有共同的函数方法,是否可以重复利用?本节就带着这些问 ...
- Java开发笔记(二十四)方法的组成形式
经过前面的学习,我们发现演示的Java代码越来越复杂,而且每个例子的代码都堆在入口方法main内部,这会导致如下问题:1.一个方法内部堆砌了太多的代码行,看着费神,维护起来也吃力:2.部分代码描述的是 ...
- Secret Message ---- (Trie树应用)
Secret Message 总时间限制: 2000ms 内存限制: 32768kB 描述 Bessie is leading the cows in an attempt to escap ...
- Python中文词频统计
以下是关于小说的中文词频统计 这里有三个文件,分别为novel.txt.punctuation.txt.meaningless.txt. 这三个是小说文本.特殊符号和无意义词 Python代码统计词频 ...
- elementui el-upload 在v-for里使用时 如何获取index
<div v-for = 'item in list'> <div @click="getImageTypeIndex(index)"> <el-up ...
- 广州.NET微软技术俱乐部微信群各位技术大牛的blog
1. .net core和微服务领域的张善友张队长和马洪喜,证明了.net core和微服务已经在各方面都不比java差2. Xamarin的卢建晖,证明了.net在移动开发领域也是很牛的.3. wi ...
- Fragment与Activity的生命周期对比
因为fragment是依赖于activity的,所以activity的创建相关都是先于fragment的,fragment的销毁相关都是先于activity的.
- Linux查杀stopped进程
在Linux系统下面,top命令可以查看查看stopped进程.但是不能查看stopped进程的详细信息.那么如何查看stopped 进程,并且杀掉这些stopped进程呢? ps -e j | ...
- C#微信支付对接
c#版在pc端发起微信扫码支付 主要代码: /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param productId 商品ID * @return 模式二URL */ ...