问题还原

引用了

DotNetCore.CAP.MySql

MySql.Data.EntityFrameworkCore

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

解决问题

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

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

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

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

添加DbContext配置

 services.AddDbContext<UserDbContext>(
optionsBuilder =>
{
var _userappsetting = Configuration.GetSection("UserDbConfig").Get<UserDbConfig>();
if (_userappsetting == null)
{
throw new Exception("数据库连接字符串未配置");
}
switch (_userappsetting.DbType)
{
case :
optionsBuilder.UseSqlServer(_userappsetting.UserConnectString, sqlserver =>
{
sqlserver.MigrationsAssembly(_migrationAssablyName); sqlserver.UseRowNumberForPaging(); });
break;
case :
optionsBuilder.UseMySQL(_userappsetting.UserConnectString, mysql =>
{
mysql.MigrationsAssembly(_migrationAssablyName); });
break;
default:
optionsBuilder.UseMySQL(_userappsetting.UserConnectString, mysql =>
{
mysql.MigrationsAssembly(_migrationAssablyName); });
break; }
});

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

.AddSingleton<IDbProviderFactory>(p =>
{
var context = p.GetRequiredService<UserDbContext>();
return new CreateDbProviderFactory(context);
}

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

改造后的代码

 public class CreateDbProviderFactory : IDbProviderFactory
{
private readonly UserDbContext _context;
public CreateDbProviderFactory(UserDbContext context)
{
_context = context;
} public IDbConnection GetConnection()
{
return _context.Database.GetDbConnection();
}
}

这样开始来也比较简洁了

在用户登录查询如下使用

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

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

.NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法的更多相关文章

  1. 转】MySQL客户端输出窗口显示中文乱码问题解决办法

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4008095.html 感谢! 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显 ...

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

    在mysql中concat函数有一个特点就是有一个值为null那么不管第二个字符有多少内容都返回为空了,这个特性让我们在实例应用中可能觉得不方便,但实现就是这样我们需要使用其它办法来解决. 天在做op ...

  3. MySQL客户端输出窗口显示中文乱码问题解决办法

    最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码,如下图所示:

  4. [TimLinux] MySQL 导入sql文件数据慢的问题解决办法

    慢的时候执行的命令: mysql -uusername -p -hip_address -Ddb_name < ./db.sql 快的时候执行的命令: mysql -uusername -p - ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. MySQL 5.7 Replication 相关新功能说明

    背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...

  7. Ubuntu彻底删除MySQL然后重装MySQL

    删除 mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo apt- ...

  8. Navicat for mysql 远程连接 mySql数据库10061、1045错误

    原文地址:http://www.111cn.net/database/mysql/46377.htm 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061 ...

  9. MYSQL数据库无法使用IP地址访问的解决办法

    1.在运行中输入CMD,确定,进入文本方式. 2.输入mysql -h localhost -u root -p 回车,使用ROOT用户登录. 3.输入use mysql; 显示Database ch ...

随机推荐

  1. codeforces 889A

    A. Petya and Catacombs time limit per test 1 second memory limit per test 256 megabytes input standa ...

  2. python编码与存储读取数据(数组字典)

    Camp时在python2的编码上坑了不少. 理解pyhon2的编码 python2字符串类型只有两种: str类型:b'xxx'即是str类型, 是编码后的类型,len()按字节计算 unicode ...

  3. Spoj 8372 Triple Sums

    题意:给你n个数字,对于任意s,s满足\(s=u_i+u_j+u_k,i<j<k\),要求出所有的s和对应满足条件的i,j,k的方案数 Solution: 构造一个函数:\(A(x)=\s ...

  4. SpringBoot基础篇AOP之基本使用姿势小结

    一般来讲,谈到Spring的特性,绕不过去的就是DI(依赖注入)和AOP(切面),在将bean的系列中,说了DI的多种使用姿势:接下来看一下AOP的玩法 <!-- more --> I. ...

  5. 【BZOJ1560】[JSOI2009]火星藏宝图(贪心,动态规划)

    [BZOJ1560][JSOI2009]火星藏宝图(贪心,动态规划) 题面 BZOJ 洛谷 题解 既然所有的位置的权值都大于\(0\),那么就可以直接贪心,按照行为第一关键字,列为第二关键字,来转移. ...

  6. 在Mac上快速Kill掉Tomcat

    最近IDEA总是会莫名其妙的挂掉,而挂掉之后通过IDEA开启的Tomcat却没有同步给关掉,等我再在IDEA里要启动的时候,就不行了.... 这时,就需要手动去kill掉tomcat,每次先 ps - ...

  7. Libre 6005 「网络流 24 题」最长递增子序列 / Luogu 2766 最长递增子序列问题(网络流,最大流)

    Libre 6005 「网络流 24 题」最长递增子序列 / Luogu 2766 最长递增子序列问题(网络流,最大流) Description 问题描述: 给定正整数序列x1,...,xn . (1 ...

  8. MySQL数据库以及表的管理

    MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...

  9. 图解MySQL 内连接、外连接

    2.内连接(INNER JOIN)内连接(INNER JOIN):有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行.(所谓的链接表就是数据库在做查询形成的中间表).例如:下面的语句3 ...

  10. [转载]AngularJS 开发者最常犯的 10 个错误

    http://www.oschina.net/translate/top-10-mistakes-angularjs-developers-make