有个需求需要从mysql数据库中读取数据

我又喜欢用sqlite保存其他数据(主要是再安装一个数据库很麻烦,数据量又不大)

当我脑海里有个不成熟想法的时候,我真想回过去掐死这个想法。

一个mysql,一个sqlite数据怎么搞

因为不会翻墙,百度和bing来的方案里都要指向一个额外module处理的方式:思路就是新建一个module,将一个dbcontext放进去,然后编辑项目把module引用过来。然后……

带着复杂的心情在ps里敲下abp new xxx -t module XXXX的时候,我是沮丧的。

就这?我不甘心。

在工程里研究下dbcontext是如何配置的

 Configure<AbpDbContextOptions>(options =>
{options.Configure(configurationContext =>{configurationContext.UseSqlite();});
}

其实options.Configure还有带参的overload,我灵机一动,看来在这里是可以配置DbContext,于是开启了探索。

新建一个DbContext及DbContextFactory

然后将配置换为

            options.Configure<ADbContext>(configurationContext =>{configurationContext.UseSqlite();});options.Configure<BDbContext>(configurationContext =>{configurationContext.UseMySQL();});

骄傲的运行了下

dotnet run --migrate-database

提示错误需要配置AbpDbContextOptions

经过一番折腾发现必须要有不带参数的Configure(原因可以自己去挖代码)

于是完整的配置代码为

  Configure<AbpDbContextOptions>(options =>{options.Configure(configurationContext =>{configurationContext.UseSqlite();});options.Configure<ADbContext>(configurationContext =>{configurationContext.UseSqlite();});options.Configure<BDbContext>(configurationContext =>{configurationContext.UseMySQL();});});

另外需要注意的是在migration和update数据库时需要指明dbcontext。在各个DbContext指明配置字符串。

友情提醒:如果是同一个类型的数据库,那就不需要修改设置options,只需要添加DbContext和DbContextFactory,配置下连接字符串就可以了。

注:我使用的是单层架构(app-nolayers),原理相同大家额可以积极探索

abp new xxxx -t app-nolayers

ABP 6.0.3多类型数据库dbcontext连接方案-众里寻他千百度蓦然回首那人却在灯火阑珊处相关推荐

  1. mfc和mysql连接 dao_用MFC DAO 在VC++6.0进行与数据库的连接,对数据库进行定义和操作,最后断开数据库的连接等各种操作。...

    展开全部 ||以下32313133353236313431303231363533e78988e69d8331333262363034代码同时兼容WINDOWS / MFC / LINUX / ODB ...

  2. Java连接MySQL8.0以上版本数据库方式

    Java连接MySQL8.0以上版本数据库方式 MySQL 8.0 开始数据库相比常用的 5.X 版本发生了比较大的变化,我们在连接数据库的过程中许多地方也要发生一些变化. 总结一下,想要利用 mys ...

  3. postgresql数据库无法连接,提示 Is the server running on host localhost (127.0.0.1) and accepting TCP/IP conn

    postgresql数据库无法连接,提示 Is the server running on host "localhost" (127.0.0.1) and accepting T ...

  4. mysql 注册驱动_mysql8.0以上版本注册驱动并建立数据库的连接公共代码

    String driverName = "com.mysql.jdbc.Driver"; String userName = "用户名"; String use ...

  5. abp如何连接oracle,Abp项目模板使用Oracle数据库

    [实例简介] Abp项目模板使用Oracle11g数据库包括系统权限管理,Abp.Zero [实例截图] [核心代码] 0df058ea-1862-4668-8b8e-11d4ab5618c3 ├── ...

  6. Net Core 6.0 webApi+sqlServer数据库教程实战

    Net Core 6.0 webApi+sqlServer数据库教程实战 教程前言 安装net core 环境 构建wepApi项目 操作数据库 接口调用 相关快速扩展 总结 教程前言 本教程从构建项 ...

  7. Abp项目模板使用Oracle数据库包括系统权限管理

    Abp项目模板使用Oracle数据库包括系统权限管理 by dacong 参考:Abp项目的创建以及Oracle的支持 aspnet-zero-core 使用MySql数据库 http://www.s ...

  8. ODBC、OLE连接各种数据库的连接字符串

    简介 我们在使用数据库的时候,首先需要打开这个数据库. 我们可以找到集中类型的数据库,每个都使用不同的连接方式. 下面列举了一下主要的数据库的连接字符串 A:使用ODBC方式 1:dBASE连接字符串 ...

  9. SQL Relay开源的数据库池连接代理服务器

    一.SQL Relay是什么? SQL Relay是一个开源的数据库池连接代理服务器 二.SQL Relay支持哪些数据库? * Oracle * MySQL * mSQL * PostgreSQL ...

最新文章

  1. 引导加载程序之争: LILO 和 GRUB
  2. JAVA后端开发规范
  3. python 图表_新手向——制作web图表(基于Python和GooPyCharts)
  4. 自定义报表预览控制工具条
  5. pytest.7.常见套路
  6. 地铁建设 (Standard IO)
  7. Client访问Tomcat简单流程(Struts2)
  8. lower版购物车模拟
  9. oracle创建索引后sqlldr导入错误
  10. Centos定时备份 MySQL数据库
  11. audio.js的研究与使用
  12. Java基础,无许复杂语句,倒序输出整数,int i = 123;输出321
  13. Unity Shader零基础入门2:环境光、漫反射、高光
  14. 阿里史上最大规模校招,进大厂的机会来啦!!!
  15. 有功功率、无功功率、视在功率 的定义
  16. matlab将数据写入到excel中
  17. matlab绘制抛物线,MATLAB中绘制抛物线的图像,请补充完成下面代码: clc,clear; x=linspace(...
  18. IBM WebSphere Portal宕机或性能低常见问题分析 及解决措施
  19. realplayer java_Realplayer控制参数
  20. 瑞萨RCAR-M3N高温死机问题

热门文章

  1. swfTools+FlexPaper文档在线预览及问题解决(FlexPaper加载一直转圈)
  2. 计算机电路图解,图解 | 你管这破玩意叫计算机?
  3. 创建一个银行账户的继承层次,表示银行的所有客户的账户。每个客户都能在他们的银行账户存钱,取钱。但是账户可以分为更具体的两种类型,例如,依靠存款生息的存储账户SavingsAccount类
  4. 数据结构与算法基础(青岛大学-王卓)(6)
  5. python源设置及查看
  6. Socket编程学习
  7. canny算子的边缘提取算法
  8. “移动仓库”:跨境电商的未来趋势
  9. 力扣让我心碎的第八天
  10. android FrameWork底层开发视频