C# EntityFramework:访问已处理的闭包
我正在使用EntityFramework 5.0,并且已安装Resharper 我有以下代码:C# EntityFramework:访问已处理的闭包,c#,.net,entity-framework,resharper,C#,.net,Entity Framework,Resharper,我正在使用EntityFramework 5.0,并且已安装Resharper 我有以下代码: using (var context = DataObjectFactory.CreateCardholdersContext()) { var cardholdersWithCards = from cardholders in context.CardholderEntities from cards in context.C
using (var context = DataObjectFactory.CreateCardholdersContext())
{
var cardholdersWithCards = from cardholders in context.CardholderEntities
from cards in context.CardholderCardEntities
select new
{
Cardholders = cardholders,
Cards = cards
};
}
在我的代码的第二行中,我在上下文下有一条下划线,带有一条警告访问已处理的闭包的权限
这意味着什么?我应该如何更改代码?这意味着在执行此代码导致错误之前,上下文可能已被处理
您需要发布更多代码来了解原因。查看或。在发布之前,你真的检查了重复项吗?@Default是的,我在谷歌上搜索了“Entity framework access to disposed closure”,这里有大量重复项。。跳过搜索中的实体框架,因为它不相关。即使SO喜欢帮助别人,你也应该学会帮助自己,在提问之前先适当地搜索主题。否则你只是在增加噪音。同意。应该扩大我的搜索范围尝试在查询末尾添加ToList()。这将确保在处理上下文之前完全枚举数据。这应该可以解决问题。你能发布CreateCandersContext()吗?@bikie这是不相关的,是using
中的变量导致了它,而且事实上from
语句可以稍后枚举,即在using
之后(当context
已经被释放时)。我在问题评论中链接的多个问题中对此进行了解释。正如你所说,Re#只是在谨慎行事。