c# - Mysql 实体框架异常
问题描述
- .Net 框架:4.7.2
- 安装的 MySQL 服务器:8.0.12
- MySql 连接器/网络:8.0.12
- 实体框架:6.2.0
- MySql.Data:8.0.12
- MySql.Data.EntityFramework:8.0.12
Web.config 配置
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlProviderServices,
MySql.Data.EntityFramework, Version=8.0.12.0, Culture=neutral,
PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="DefaultConnection"
connectionString="server=localhost;user=root;database=app;password=root;"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices,
MySql.Data.EntityFramework, Version=8.0.12, Culture=neutral,
PublicKeyToken=c5687fc88969c44d"/>
</providers>
连接数据库时,出现如下异常:
The requested .Net Framework Data Provider's implementation does not have an Instance field of a System.Data.Common.DbProviderFactory derived type.
解决方案
中的配置信息<DbProviderFactories>
不正确。根据MySQL Connector/NET 文档,它应该是:
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
推荐阅读
- javascript - 带有方法的 RPG 银行更改属性
- curl - 卷曲显示未经授权的 IBM Watson API
- excel - 双击一个单元格以使用 VBA 显示来自 Excel 中链接的图片
- javascript - newPlot() 函数不适用于 Plotly.js 中的 DOM 元素,因为它是从 typescript 文件运行的
- java - Apache Nifi:从 Java 应用程序执行/触发 Nifi 处理器
- android - android studio 4.0 无法访问 com.example.projectname.javaname
- javascript - 我可以在 javascript 中定义打印驱动程序吗?
- c# - 如何在 Visual Studio Code 中调试 .net 核心应用程序?
- python - 检查字符串是否有相似的模式
- python - 一个数的 Python 因数