错误运行LINQ查询

问题描述:

当我收到此错误错误运行LINQ查询

"{"There is already an open DataReader associated with this Command which must be closed first."}" 

下面是关于它的错误代码。

var summaryViewModel = new YogaSpaceSummaryViewModel 
      { 
       SpaceImage = (from u in space.Images orderby u.Ordering ascending select u.ImageThumbnail).First(), 
       Title = space.Overview.Title, 
       SpaceId = space.YogaSpaceId, 
       DateCreated = space.DateCreated.ToShortDateString(), 
       StepsToList = space.StepsToList, 
       Status = space.Status 
      }; 

这段代码的哪一部分这里

YogaSpaceOverviewViewModel overviewViewModel = new YogaSpaceOverviewViewModel(); 

     foreach (YogaSpace space in yogaSpaces) 
     { 
      var summaryViewModel = new YogaSpaceSummaryViewModel 
      { 
       SpaceImage = (from u in space.Images orderby u.Ordering ascending select u.ImageThumbnail).First(), 
       Title = space.Overview.Title, 
       SpaceId = space.YogaSpaceId, 
       DateCreated = space.DateCreated.ToShortDateString(), 
       StepsToList = space.StepsToList, 
       Status = space.Status 
      }; 

      overviewViewModel.YogaSpaceSummarys.Add(summaryViewModel); 
     } 
+0

正如消息所示,请检查您的任何以前打开/使用过的DataReader是否已正确关闭。 – MusicLovingIndianGirl

+0

我该如何检查? – user1186050

+0

发布DB连接的代码 – MusicLovingIndianGirl

<connectionStrings> 
<add name="DatabaseEntities" connectionString="metadata=res://*/Database.csdl|res://*/Database.ssdl|res://*/Database.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=Server;Initial Catalog=Database;Persist Security Info=True;User ID=sa;Password=passowrd;MultipleActiveResultSets=True;Application Name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

启用Webconfig

MultipleActiveResultSets

您可能需要使用使用这样的范围将导致所有对象向下包裹bedisposed。此外,为了规避处置datacontext的lzy加载问题,您将会更好地服务于ToList()FirstOrDefault()您返回的任何结果,以确保集合已被枚举,并且如果上下文被处置,则所有内容都是花哨的。

将MultipleActiveResultSets = true添加到连接字符串的提供者部分(其中指定了数据源,初始目录等)。