问题还原

引用了

DotNetCore.CAP.MySql

MySql.Data.EntityFrameworkCore

在使用MySql相关对象的时候会出现如下冲突,在命名空间加入伪空间名称是不能解决这个问题的(注:如果直接用这个Pomelo.EntityFrameworkCore.MySql是不会有问题的)

解决问题

出现上面的问题肯定要改造代码,那么我们在只能不用这些对象了

不用这些对象怎么来实现操作数据库呢?

所以只用调用上下文对象了,获取连接只能使用 上下文对象中的操作

之前做了一个CQRS 是直接用Dapper访问的数据,封装了一个工厂,现在我用上下文就不需要这些

添加DbContext配置

services.AddDbContext(

optionsBuilder=>{var _userappsetting = Configuration.GetSection("UserDbConfig").Get();if (_userappsetting == null)

{throw new Exception("数据库连接字符串未配置");

}switch(_userappsetting.DbType)

{case 1:

optionsBuilder.UseSqlServer(_userappsetting.UserConnectString, sqlserver=>{

sqlserver.MigrationsAssembly(_migrationAssablyName);

sqlserver.UseRowNumberForPaging();

});break;case 2:

optionsBuilder.UseMySQL(_userappsetting.UserConnectString, mysql=>{

mysql.MigrationsAssembly(_migrationAssablyName);

});break;default:

optionsBuilder.UseMySQL(_userappsetting.UserConnectString, mysql=>{

mysql.MigrationsAssembly(_migrationAssablyName);

});break;

}

});

同时将上下文对象注册到构成函数中去

.AddSingleton(p =>{var context = p.GetRequiredService();return newCreateDbProviderFactory(context);

}

这样做还有一个好处,不用在根据在工厂类去判断使用的是什么数据库了,这个工作全部都交给了UserDbContext上下文文对象了

改造后的代码

public classCreateDbProviderFactory : IDbProviderFactory

{private readonlyUserDbContext _context;publicCreateDbProviderFactory(UserDbContext context)

{

_context=context;

}publicIDbConnection GetConnection()

{return_context.Database.GetDbConnection();

}

}

这样开始来也比较简洁了

在用户登录查询如下使用

using (var db =_dbProviderFactory.GetConnection())

{var model = (await db.QueryAsync("select * from tb_user where username=@username and password=@password", new { @username = username, @password =password })).FirstOrDefault();

}

这样做及时解决了冲突的问题,同时还简化了代码

cap mysql_.NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法相关推荐

  1. mysql中CONCAT值为空的问题解决办法

    mysql中CONCAT值为空的问题解决办法 参考文章: (1)mysql中CONCAT值为空的问题解决办法 (2)https://www.cnblogs.com/fogwang/p/5536897. ...

  2. 分布式CAP理论:为什么CAP理论中的三个指标不能同时满足呢?

    文章目录 前言 分布式系统的特点 分布式系统技术是用来解决什么问题的呢? CAP代表什么含义 一致性(Consistency) 可用性(Availability) 分区容错性(Partition To ...

  3. js 连接mysql_搭建node服务(二):操作MySQL

    为了进行复杂信息的存储和查询,服务端系统往往需要数据库操作.数据库分为关系型数据库和非关系型数据库,关系型数据库有MySQL.Oracle.SQL Server等,非关系型数据库有Redis(常用来做 ...

  4. httpd是mysql_在Centos下安装httpd、php、Mysql并配置(转载)

    转自:http://club.jledu.gov.cn/?action-viewspace-itemid-299020 1.安装Apahce, PHP, Mysql, 以及php连接mysql库组件. ...

  5. linux ljie mysql_[Linux Mysql] Linux下Mysql的基本操作

    1. 连接Mysql 1.1 连接到本机上的Mysql 键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码 ...

  6. ubuntu 转mysql_(转)Ubuntu 16.04下安装MySQL

    转自:https://www.linuxidc.com/Linux/2017-06/144805.htm 首先执行下面三条命令: sudo apt-get install mysql-server s ...

  7. 字符界面运行mysql_详解linux系列之字符界面下MySQL+apache+php的源代码安装

    详解linux系列之字符界面下MySQL+apache+php的源代码安装 在前面介绍了linux和在字符下安装,下面我来介绍一下程序包的安装. 大家也许都知道在linux安装程序的时候后用rpm包安 ...

  8. ruby sinatra mysql_关于在 OpenShift 上部署的 Sinatra 使用 MySQL 的问题

    本人是 Ruby 新手,想通过在 openshift 上部署 sinatra 来慢慢学习,感觉 ror 实在是繁杂故先选择了感觉轻量级的 sinatra,数据库也是了解了大概,希望大大能帮助我> ...

  9. vapor mysql_无法在Vapor项目中连接我的MySQL数据库

    我是Vapor的新手,我想尝试连接我的MySQL数据库.我在官方文档中找到了如何执行此操作,但当我尝试发送查询时,它会抛出一个错误: No services are available for 'Da ...

最新文章

  1. 更换YUM及升级包方法
  2. solr部署在tomcat下
  3. 通过修改注册表,实现网页链接中的私有协议启用本地exe进程
  4. [css] 举例说明时间、频率、角度、弧度、百分度的单位分别是哪些?
  5. spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)
  6. android平台代号、版本、API 级别和 NDK 版本
  7. MySQL数据库导入SQL[ERR]Unknown collation: ‘utf8mb4_0900_ai_ci‘的解决办法
  8. xampp错误: mysql 非正常关闭._mysql数据库DBA实用技巧--为你的数据库开启Innodb监控...
  9. 等值连接_【高中地理】重难点内容:16种等值线的解读和应用
  10. java数组base64编码,java将base64编码字符串还原为字节数组
  11. Linux系统下从百度云快速下载文件的姿势(2020.07月更)
  12. MCGS 昆仑通态触摸屏 modbus TCP 数据转发
  13. 单行文本溢出显示省略号
  14. 阿里云acp考试简介,以及考试准备与攻略
  15. win7计算机右键菜单多,win7系统清理右键菜单多余的选项|win7删除右键菜单多余选项的方法...
  16. easyExcel导出文件为空解决
  17. 微信小程序开发工具 将已存在的Git项目在新开发者下拉取推送
  18. uniapp日历插件
  19. android蓝牙传输文件到mysql_蓝牙opp文件发送过程剖析
  20. Windows的cmd中cd指令切换路径

热门文章

  1. LeetCode简单题之唯一元素的和
  2. 多实例gpu_MIG技术快速提高AI生产率
  3. 1977中文版_历年星云、雨果获奖长篇中文版汇总
  4. databinding 入门 知识 给TextView 赋值
  5. Unix/Linux/Mac os下 文件互传
  6. asp.net[web.config] httphandlers 与实现自由定义访问地址
  7. Rstudio 实现 爬虫 文本分词 个性化词云设计--我爱中国我爱党
  8. 2022-2028年中国摩托车行业投资分析及前景预测报告(全卷)
  9. Python 列表生成式的使用
  10. Pandas 基础 (2)—— DataFrame