基础提供程序在打开时失败:序列包含多个匹配元素

The underlying provider failed on Open: Sequence contains more than one matching element

提问人:Koops128 提问时间:11/15/2023 更新时间:11/15/2023 访问量:17

问:

经过数周的工作,没有任何变化,今天这条线:

return db.Set<TEntity>().Find(primaryKeys);

突然抛出:

The underlying provider failed on Open: Sequence contains more than one matching element

该代码在使用相同数据库实例的另一个项目中继续正常工作。

有关此错误的许多其他问题已通过更新 EntityFramework 包得到解决。我正在使用 .NET Framework 4.8 和以下包:

  • 实体框架:6.4.4
  • Microsoft.AspNet.Identity.Core:2.2.4
  • Microsoft.AspNet.Identity.EntityFramework:2.2.4
  • Microsoft.AspNet.Identity.Owin:2.2.4

似乎是最新的。

我即将需要重新安装 Visual Studio 甚至 Windows,但真的不想这样做。

C# 实体框架

评论

1赞 Morten Bork 11/15/2023
我的意思是,当数据库包含多个您声称应该在某处是唯一的元素时,特别例外。因此,您正在尝试访问一个表,该表具有多个结果实例,该表基于一个应该只能提供 1 个结果的筛选器集。重新安装 Windows 或 Visual Studio 或其他任何内容都无法解决此问题

答:

0赞 Koops128 11/15/2023 #1

使用以下命令打开数据库日志记录:db。Database.Log = 控制台.Write;

输出:iisexpress.exe 错误:0:无法连接到任何指定的MySQL主机。

这揭示了问题实际上是我的项目无法访问数据库,并且与匹配元素无关