错误运行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);
}
答
<connectionStrings>
<add name="DatabaseEntities" connectionString="metadata=res://*/Database.csdl|res://*/Database.ssdl|res://*/Database.msl;provider=System.Data.SqlClient;provider connection string="Data Source=Server;Initial Catalog=Database;Persist Security Info=True;User ID=sa;Password=passowrd;MultipleActiveResultSets=True;Application Name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
启用Webconfig
MultipleActiveResultSets
答
您可能需要使用使用这样的范围将导致所有对象向下包裹bedisposed。此外,为了规避处置datacontext的lzy加载问题,您将会更好地服务于ToList()
或FirstOrDefault()
您返回的任何结果,以确保集合已被枚举,并且如果上下文被处置,则所有内容都是花哨的。
答
将MultipleActiveResultSets = true添加到连接字符串的提供者部分(其中指定了数据源,初始目录等)。
正如消息所示,请检查您的任何以前打开/使用过的DataReader是否已正确关闭。 – MusicLovingIndianGirl
我该如何检查? – user1186050
发布DB连接的代码 – MusicLovingIndianGirl