“/”应用程序中的服务器错误.序列包含多个元素

本文关键字:包含多 元素 错误 服务器 应用程序 | 更新日期: 2023-09-27 18:35:45

我目前正在更新我的项目(ASP.net C#)。就清洁,构建和发布网站而言,一切都在本地工作。将文件上传到服务器进行生产时,我收到一条错误消息,无法修复.

以下是消息。有人可以帮忙,以便我可以在我的服务器上发布它吗?

Sequence contains more than one element 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
Exception Details: System.InvalidOperationException: Sequence contains more than one element
Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 
Stack Trace: 
[InvalidOp`enter code here`erationException: Sequence contains more than one element
   System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source) +5876344
   System.Linq.Queryable.SingleOrDefault(IQueryable`1 source, Expression`1 predicate) +490
   Sinai.Ors.Domain.Repositories.UserRepository.GetUser(String mnemonic) in ''mdpointfs'md'moupar'Public Desktop'ORSUPDATE'Sinai (2)12.22.2014 VS2010'Sinai'Sinai.Ors.Domain'Repositories'UserRepository.cs:19
   SinaiMasterPage.OnInit(EventArgs e) +42
   System.Web.UI.Control.InitRecursive(Control namingContai`enter code here`ner) +186
   System.Web.UI.Control.InitRecursive(Control namingContainer) +291
   System.Web.UI.Page.ProcessRequestMain(Boolean includeS`enter code here`tagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2098
________________________________________
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34212

“/”应用程序中的服务器错误.序列包含多个元素

堆栈跟踪会告诉您错误的确切位置。 在 GetUser() 方法中,有一个对集合SingleOrDefault()调用。 集合具有多个元素,因此将引发异常。

代码假定集合中永远不会有多个元素,并且该假设对于该数据是错误的。 您有以下几种选择:

  1. 数据不好,请更正。 如果数据不应处于此状态,则某处缺少数据完整性检查。 对一列或一组列的唯一约束、外键关系等。 架构可能无法维护此特定数据完整性度量,在这种情况下,应用程序代码应强制执行它。
  2. 如果应该只有一个记录,请强制执行。 检查集合的Count(),如果大于 1,则处理该错误条件。 向用户显示消息? 通知某人? 这取决于你。
  3. 如果可以有多个记录,并且您只需要第一条记录,请使用 FirstOrDefault() 而不是 SingleOrDefault()

无论哪种方式,堆栈跟踪都会告诉您问题所在。

您是否希望一个GetUser()可以有多个值?如果没有,SingleOrDefault可能会向您显示不一致。然后,您应该修复导致它的错误,并SingleOrDefault而不是FirstOrDefault

如果存在多个元素,SingleOrDefault会引发异常。

在这里,您可以确切地看到单个或默认方法的作用:http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault(v=vs.100).aspx