无法解析 Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger 类型的服务

     2023-03-29     221

关键词:

【中文标题】无法解析 Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger 类型的服务【英文标题】:Unable to resolve service for type Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger 【发布时间】:2022-01-10 10:43:54 【问题描述】:

我在使用 EF 核心构建现有 MySQL 数据库时遇到了困难。 我已经添加了oracle doc中提到的所需依赖项:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkcore.Tools" Version="6.0.0">

然后,我在包管理器控制台中运行了这段代码:

Scaffold-Dbcontext "server=the.server.ip.address;user=user_name;database=db_name;password=db_password;port=3306" MySql.EntityFrameworkCore -o Data -v

它显示了这个错误:

无法解析服务类型 'Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger`1[Microsoft.EntityFrameworkCore.DbLoggerCategory+Scaffolding]' 在尝试激活时 'MySql.EntityFrameworkCore.Scaffolding.Internal.MySQLDatabaseModelFactory'

以下是输出窗口中的相关日志:

Finding design-time services referenced by assembly 'Test2'...
Finding design-time services referenced by assembly 'Test2'...
No referenced design-time services were found.
Finding design-time services for provider 'MySql.EntityFrameworkCore'...
Using design-time services from provider 'MySql.EntityFrameworkCore'.
Finding IDesignTimeServices implementations in assembly 'Test2'...
No design-time services were found.

我不知道如何实现设计时类,也没有在网络上找到任何有用的链接。

请注意,我可以使用 MySQL Workbench 访问和运行数据库查询。

【问题讨论】:

【参考方案1】:

我在尝试构建现有 MySQL 数据库时遇到了同样的问题。看起来最新版本的 MySql.EntityFrameworkCore (6.0.0-preview3.1) 仍然使用 EFCore 5.0 库并且尚未更新到 EFCore 6.0。

似乎Microsoft.EntityFrameworkCore.Diagnostics 最后一次在 EFCore 5 中实现并在 6 中删除。

当我将所有包降级到 5 版本级别时,我能够运行脚手架命令而不会出现该错误。

【讨论】:

你是如何降级的?添加了指定较低版本的软件包?【参考方案2】:

为了使Scaffold-Dbcontext 工作,我不得不将两个包都降级到5.0.0 版本。

MySql.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools

成功搭建脚手架后,我将这些软件包升级回最新版本。

【讨论】:

【参考方案3】:

@https://***.com/users/1322226/quinestor 我遇到了同样的问题,正如@https://***.com/users/9914700/james-ruth 提到的,我降级了所有 EFCore 和 EFCore Design 的版本到 Visual Studio 中的 5.0.8。

没有四处寻找命令行命令 :) 但我们也可以从 dotnet cli 执行此操作,我想您可能会知道。我们可以删除 - dotnet remove package ,并安装特定版本 - dotnet add package --version

【讨论】:

【参考方案4】:

我可以在官方网站上找到microsoft.entityframeworkcore.diagnostics 的Core 6.0 文档,但是当我尝试使用 Scaffold-DbContext 命令时它仍然无法正常工作。必须将所有软件包降级到最新的 5.0 版本才能正常工作。这是我的项目设置中的 packagerefs

"Microsoft.EntityFrameworkCore.Design" 版本="5.0.13"

“Microsoft.EntityFrameworkCore.Tools”版本="5.0.13"

"MySql.Data" 版本="8.0.28"

"MySql.EntityFrameworkCore" 版本="5.0.10"

【讨论】:

【参考方案5】:

我不是在搭建脚手架时遇到此错误,而是在尝试创建我的第一次迁移时遇到此错误。我不想降级到 5.0,因为它必须是永久性的,因为我要运行大量迁移。

我通过将我的提供商从 MySql.Data.EntityFrameworkCore 更改为 Pomelo.EntityFrameworkCore.MySql 来修复它

    从我的 API 和 DAL 项目中删除旧提供程序:

    dotnet remove package MySql.EntityFrameworkCore

    添加 Pomelo 提供者

    dotnet add package Pomelo.EntityFrameworkCore.MySql

    更新您的启动以使用 Pomelos 配置:

    https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#2-services-configuration

    正在迁移:

    dotnet ef migrations add InitialCreate

【讨论】:

Scaffold-DbContext:找不到命令

...ext"Server=(db);Database=xxxx;Trusted_connection=true;"Microsoft.EntityFram 查看详情

nslookup 报告“无法解析 '(null)':名称无法解析”,尽管它成功解析了 DNS 名称

】nslookup报告“无法解析\\\'(null)\\\':名称无法解析”,尽管它成功解析了DNS名称【英文标题】:nslookupreported"can\'tresolve\'(null)\':Namedoesnotresolve"thoughitsuccessfullyresolvedtheDNSnamesnslookup报告“无法解析\'(null)\':名称无法解析”... 查看详情

toast 无法解析,activitynotfoundexception 无法解析为类型

】toast无法解析,activitynotfoundexception无法解析为类型【英文标题】:toastcannotberesolvedandactivitynotfoundexceptioncannotberesolvedtoatype【发布时间】:2013-12-1412:11:24【问题描述】:我想在我的应用中导入谷歌地图。这是代码:publicstaticvoidma... 查看详情

无法解析的外部符号,无法解析的外部命令

1.这个是因为有相关的lib包没有被引用进去 解决办法:1. 2.  查看详情

无法解析“:app@debug/compileClasspath”的依赖关系:无法解析

】无法解析“:app@debug/compileClasspath”的依赖关系:无法解析【英文标题】:Unabletoresolvedependencyfor\':app@debug/compileClasspath\':Couldnotresolve【发布时间】:2018-12-1513:02:16【问题描述】:新安装的Androidstudio3.1.3在创建新项目并首次编译... 查看详情

无法解析符号“FusedLocationProviderClient”

】无法解析符号“FusedLocationProviderClient”【英文标题】:Cannotresolvesymbol\'FusedLocationProviderClient\'【发布时间】:2018-02-0807:55:49【问题描述】:我有一个错误在声明时无法解析符号\'FusedLocationProviderClient\'privateFusedLocationProviderClientmF... 查看详情

无法解析符号“注释”[重复]

】无法解析符号“注释”[重复]【英文标题】:Cannotresolvesymbol\'annotation\'[duplicate]【发布时间】:2021-06-2317:11:37【问题描述】:我正在学习SpringBoot,但我之前没有任何这方面的经验。我面临两个错误,我试图解决几个小时仍然无... 查看详情

errorlnk2001:无法解析的外部符号

1>正在链接...1>DirectAudio.obj:errorLNK2001:无法解析的外部符号_GUID_Download1>DirectAudio.obj:errorLNK2001:无法解析的外部符号_GUID_StandardMIDIFile1>DirectAudio.obj:errorLNK2001:无法解析的外部符号_IID_IDirectMusicSegment1>DirectAudio.obj:errorLNK2001:无... 查看详情

解析器无法使用 Angular Firestore 解析

】解析器无法使用AngularFirestore解析【英文标题】:Resolvernotresolvingwithangularfirestore【发布时间】:2019-01-2422:50:43【问题描述】:我添加了一个解析器,以便在用户登录后从CloudFirestore获取用户信息。但是,解析器没有完成,视图... 查看详情

vs2017,vs2019,无法解析的外部符号sscanf,无法解析的外部符号_snprintf,无法解析的外部符号_vsnprintf,无法解析的外部符号__iob_func

...目   文件   行   禁止显示状态错误   LNK2019   无法解析的外部符号sscanf,该符号在函数ms_mdtimestr2nstime中被引用   SOLOSWDCC   E:\\appsoloswdcc\\apps\\soloswdcc\\libmseed.lib(genutils.obj)   1   严重性   代码   说明  查看详情

vs2017,vs2019,无法解析的外部符号sscanf,无法解析的外部符号_snprintf,无法解析的外部符号_vsnprintf,无法解析的外部符号__iob_func

...目   文件   行   禁止显示状态错误   LNK2019   无法解析的外部符号sscanf,该符号在函数ms_mdtimestr2nstime中被引用   SOLOSWDCC   E:\\appsoloswdcc\\apps\\soloswdcc\\libmseed.lib(genutils.obj)   1   严重性   代码   说明  查看详情

Android Studio 3.0:无法解析:app@dexOptions/compileClasspath'的依赖关系:无法解析项目:animators

】AndroidStudio3.0:无法解析:app@dexOptions/compileClasspath\\\'的依赖关系:无法解析项目:animators【英文标题】:Androidstudio3.0:Unabletoresolvedependencyfor:app@dexOptions/compileClasspath\':Couldnotresolveproject:animatorsAndroidStudio3.0:无法解析 查看详情

无法从状态 '' 解析 '...'

】无法从状态\\\'\\\'解析\\\'...\\\'【英文标题】:Couldnotresolve\'...\'fromstate\'\'无法从状态\'\'解析\'...\'【发布时间】:2015-03-3115:51:21【问题描述】:这是我第一次尝试使用ui-router。这是我的app.jsangular.module(\'myApp\',[\'ionic\']).run(functio... 查看详情

googleapis / python-bigquery:BadRequest:无法解析为带有消息“无法解析”的日期

】googleapis/python-bigquery:BadRequest:无法解析为带有消息“无法解析”的日期【英文标题】:googleapis/python-bigquery:BadRequest:CouldnotparseasDATEwithmessage\'Unabletoparse\'【发布时间】:2021-10-0401:44:20【问题描述】:给定以下代码:withio.StringI... 查看详情

getChildFragmentManager() 无法解析或无法引用

】getChildFragmentManager()无法解析或无法引用【英文标题】:getChildFragmentManager()cannotberesolvedorcannotbereferenced【发布时间】:2016-05-0713:30:30【问题描述】:我知道,已经有很多关于这个主题的论坛帖子,但没有一个能解决我的问题我... 查看详情

产品风味 + 无法解析“:app@app1521DebugAndroidTest/compileClasspath”的依赖关系:无法解析项目:mylibrary

】产品风味+无法解析“:app@app1521DebugAndroidTest/compileClasspath”的依赖关系:无法解析项目:mylibrary【英文标题】:ProductFlavors+Unabletoresolvedependencyfor\':app@app1521DebugAndroidTest/compileClasspath\':Couldnotresolveproject:mylibrary【发布时间】:20 查看详情

ObjectMapper 无法解析为类型

】ObjectMapper无法解析为类型【英文标题】:ObjectMappercannotberesolvedtoatype【发布时间】:2016-03-2108:14:24【问题描述】:我无法让JSON正常工作。ObjectMapper无法解析。库已正确导入。importjava.io.File;importjava.io.IOException;importjava.util.ArrayLis... 查看详情

无法解析符号“servlet”

】无法解析符号“servlet”【英文标题】:cannotresolvesymbol\'servlet\'【发布时间】:2012-03-1718:22:37【问题描述】:我遇到了这个新手大问题。当我尝试以下操作时;\'servlet\'变为红色并指示\'无法解析符号\'servlet\'。importjavax.servlet.htt... 查看详情