我有这个问题,我执行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.LazyEnumerator1.MoveNext() at System.Collections.Generic.List
1..ctor(IEnumerable1 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行
现在我无法重新创建此错误,除非它正在生产中。在尝试遍历列表集合时,不确定代码失败的原因。