通过Linq查询循环到列表引发IEnumerable错误

时间:2015-11-10 14:23:48

标签: c# asp.net linq list loops

我有这个问题,我执行Linq查询然后将其转换为List对象。让我补充一点,这个错误有时只会发生,它会在生产中发生。当我继续重复遍历列表时,我得到一个IEnumerable错误。我有一个记录器设置,这是异常类型和堆栈跟踪。关于如何重构这段代码以使其更稳定的任何想法都将非常感激。 这是抛出错误的代码

var isMember = db.DN2_Member.Where(m =>
            m.Partner_Contract_Nbr.ToLower() == member.DentalMemberId.ToLower()
            && m.Mbr_First_Nm.ToLower() == member.DentalMemberFirstName.ToLower()
            //&& m.Mbr_Mid_Nm.ToLower().Trim() == memberMiddleName.ToLower()
            && m.Mbr_Last_Nm.ToLower() == member.DentalMemberLastName.ToLower()
            && m.DW_Rec_End_Dt == null 
            && m.Mbr_Suc_Title.ToLower() == membersuffix.ToLower().Replace(".", ""));

//Forces the query to evaluate to a definitive collection; necessary for querying it further
var memberList = isMember.ToList();

foreach (var record in memberList)
{
     record.Mbr_Mid_Nm = String.IsNullOrEmpty(record.Mbr_Mid_Nm.Trim()) ? "" : record.Mbr_Mid_Nm.Trim().Substring(0, 1); 
}

错误在foreach (var record in memberList)行上抛出 - 这是第88行

这是记录器信息

  

异常类型:执行命令时发生错误   定义。有关详细信息,请参阅内部异常。

     

Stack Trace:at   System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand   entityCommand,CommandBehavior behavior)at   System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute [TResultType](ObjectContext的   context,ObjectParameterCollection parameterValues)at   System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction [T](Func键1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectQuery 1<> c__DisplayClass3.b__1()   在   System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute [TResult](Func键1 operation) at System.Data.Entity.Core.Objects.ObjectQuery 1.GetResults(可空1 forMergeOption) at System.Data.Entity.Core.Objects.ObjectQuery 1.b__0()   在System.Data.Entity.Internal.LazyEnumerator 1.MoveNext() at System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 source)at at   牙科THSEnrollmentService.WebHost.THSService.GetMember(Dental会员)位于e:\ GoAgent \ pipelines \ DentalTHSEnrollmentService_Master \ product \ app \ DentalTHSEnrollmentService.WebHost \ THSService.svc.cs:第88行

现在我无法重新创建此错误,除非它正在生产中。在尝试遍历列表集合时,不确定代码失败的原因。

0 个答案:

没有答案