[bug系列]Method not found: 'Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilderFactory
bug由来
最近开始学习NetCore,想通过实战使用NetCore做一个集成数据库存储Redis缓存的WebApi项目,由于MSSQL的庞大体积,最终决定使用轻量级关系型数据库MySql。
所以最终方案是NetCore+EF+MySql(Redis缓存)完成这个项目
由于之前接触mysql甚少,也是从网上搜集资料学习
引用了Nuget
MySql.Data.EntityFrameworkCore
Pomelo.EntityFrameworkCore.MySql
由于这两个都是mysql,在概念混淆的情况下都引用了,这就出现了在数据库连接的时候出现了这个bug
贴上代码
public void ConfigureServices(IServiceCollection services)
{
var mysqlCon = Configuration.GetSection("ConnectionStrings:MySqlCon").Value;
services.AddDbContext<Models.MainDBContext>(l => l.UseMySQL(mysqlCon));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
因为同时用用了Mysql和Pomelo,在这个与数据库交互的地方出现了问题
追踪进去UseMySQL发现里面用的是MySql.Data.EntityFrameworkCore程序集
由于使用的NetCore版本是2.1,查询很多资料最终在国外网站得知MySql.Data.EntityFrameworkCore对NetCore2.1的支持并不完善,所以如果需要用到ef的话,推荐使用下面的
同时代码也修改为(标红部分)
public void ConfigureServices(IServiceCollection services)
{
var mysqlCon = Configuration.GetSection("ConnectionStrings:MySqlCon").Value;
services.AddDbContext<Models.MainDBContext>(l => l.UseMySql(mysqlCon));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
通过追踪
如果在数据迁移Migrations的时候也出现这个错误提示,那么问题是一样的,同样修改为小写的,引用Pomelo.EntityFrameworkCore.MySql就可以了
[bug系列]Method not found: 'Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilderFactory的更多相关文章
- EF core2.1+MySQL报错'Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalParameterBuilder..ctor(Microsoft.EntityFrameworkCore.Storage.IRelationalTypeMapper)
一.使用.net core 2.0 EF mysql 运行一直报错如下: An unhandled exception occurred while processing the request. M ...
- System.InvalidOperationException: The binary operator NotEqual is not defined for the types 'Microsoft.EntityFrameworkCore.Storage.ValueBuffer' and 'Microsoft.EntityFrameworkCore.Storage.ValueBuffer'.
.netcore 2.1使用左表连接时报错,原因是对数据库中实体 DateTimeOffset date做查询判断时,将数据库中date转为string进行了判断,这样判断是错误的,并且效率低,应该是 ...
- Microsoft.EntityFrameworkCore.Sqlite的学习
SQLite in ASP.NET Core with EntityFrameworkCore ASP.NET Core 2: Using SQLite as a light weight datab ...
- IE CSS Bug 系列
1.[IE CSS Bug系列]IE6&IE7图片链接无效 <!doctype html> <html> <head> <meta charset=& ...
- .NET CORE 学习笔记之安装EF【Microsoft.EntityFrameworkCore】扩展报错
最近在学习.NET CORE ,刚开始就遇到问题了. 安装EF框架的试试就报错, 报错如下: 错误 程序包还原失败.正在回滚“XXX”的程序包更改. 找了好久的方案,网上也没搜到对应的问题和方案,然而 ...
- Could not load file or assembly 'Microsoft.EntityFrameworkCore.Relational
提示的很明确了,缺少Microsoft.EntityFrameworkCore.Relational引用.nuget安装上即可.
- uwp - 解决“Microsoft.EntityFrameworkCore.Tools –Pre因为在此系统上禁止运行脚本”
在uwp使用ef时,需要安装“Microsoft.EntityFrameworkCore.Tools –Pre” ,如果安装失败提示:“无法加载文件 \.nuget\packages\Microsof ...
- 引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错
错误如下 解决方法 使用VS2017或更高版本在改项目右键,选择“编辑xxx.csproj”,并添加如下一句话,就可以成功引用改Nuget包 <PackageReference Include= ...
- Microsoft.EntityFrameworkCore.Tools 相关命令
一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core. 二.程序包管理器控制台 为了能够在控制台中使用命令行来 ...
随机推荐
- [Now] Deploy a Node project with Zeit’s Now
Use Zeit’s now to deploy a node application from your local machine to a remote cloud service in mom ...
- php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen)
php面试题7(1.unset变量是删除栈变量,并不删除堆变量)(2.php爬虫特别简单: 可以file_get_contents和直接fopen) 一.总结 1.unset变量是删除栈变量,并不删除 ...
- Windows Phone 8.1 联系人与日历
(1)联系人(Manifest 获取权限) 1)获取联系人 获取联系人的方式有两种 A. ContactPicker ContactPicker 也就是直接打开一个系统的选择联系人界面,让用户选择,可 ...
- [Javascript] Create scrollable DOM elements with Greensock
In this lesson, we will look at Greensock's Draggable API. We will implement a scrollable <div> ...
- NOIP 模拟 路径求和 - Tarjan+dfs+码
题目大意: 各一个奇环内向森林,求每两个点对间的距离之和.无法到达则距离为-1. 分析: 首先Tarjan找出size大于1的连通分量(环),环中的边的贡献可以单独计算. 然后从入度为0的点向内dfs ...
- c头文件(.h)的作用
C语言的著作中,至今还没发现把.h文件的用法写的透彻的.在实际应用中也只能依葫芦画瓢,只知其然不知其所以然,甚是郁闷!闲来无事,便将搜集网络的相关内容整理一下,以便加深自己的理解 理论概述:.h中一般 ...
- Operating system coordinated thermal management
A processor's performance state may be adjusted based on processor temperature. On transitions to a ...
- kettle的job中运行每行
job中运行每行 有时,我们须要job或转换执行多次.且每次传入的參数都不同.假如你正在做数据迁移的工作,须要导入每天的旧数据,则须要一个job依据指定的日期导入数据,该日期被指定作为參数.假设 ...
- Gini 系数与熵的关系
首先来看二者的基本定义: ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪H(X)=−∑k=1KpklnpkGini(X)=∑k=1Kpk(1−pk) 将 f(x)=−lnx 在 x=1 处进行一阶泰勒展开(忽略高阶无穷小 ...
- 采用API将AR应收账款未知未核销状态变成黄金
DECLARE p_api_version NUMBER; p_init_msg_list VARCHAR2(200); p_commit VARCHAR2(200); p_validation_le ...