Entity framework ObjectContext实例已被释放,不能再用于需要连接的操作

Entity framework ObjectContext实例已被释放,不能再用于需要连接的操作,entity-framework,lazy-loading,entity-framework-5,objectcontext,change-tracking,Entity Framework,Lazy Loading,Entity Framework 5,Objectcontext,Change Tracking,由于EF的更改跟踪和延迟加载功能,我的一个查询遇到了问题。问题是,在得到查询结果之后,我使用AutoMapper将域对象映射到我的业务模型中,但它一直抛出异常,因为上下文已被释放 ObjectContext实例已被释放,无法再使用 用于需要连接的操作 当我在调试器中查看结果集合时,我看到它是DynamicProxy的列表,而不是实际的实体。我试图停止更改跟踪,但没有帮助。这是我的密码: public List<ContentTypeColumn> GetContentType

由于EF的更改跟踪和延迟加载功能,我的一个查询遇到了问题。问题是,在得到查询结果之后,我使用AutoMapper将域对象映射到我的业务模型中,但它一直抛出异常,因为上下文已被释放

ObjectContext实例已被释放,无法再使用 用于需要连接的操作

当我在调试器中查看结果集合时,我看到它是
DynamicProxy
的列表,而不是实际的实体。我试图停止更改跟踪,但没有帮助。这是我的密码:

    public List<ContentTypeColumn> GetContentTypeColumns(Int64 contentTypeId)
    {
        List<ContentTypeColumn> result = new List<ContentTypeColumn>();
        using (SCGREDbContext context = new SCGREDbContext())
        {                
            ContentType contentType = context.ContentTypes.Include("Parent").AsNoTracking().FirstOrDefault(x => x.Id.Equals(contentTypeId));

            result.AddRange(contentType.ContentTypeColumns.ToList());
            while (contentType.Parent != null)
            {
                result.AddRange(contentType.Parent.ContentTypeColumns.ToList());
                contentType = contentType.Parent;
            }    
        }
        return result.ToList();
    }
公共列表GetContentTypeColumns(Int64 contentTypeId)
{
列表结果=新列表();
使用(SCGREDbContext=new SCGREDbContext())
{                
ContentType ContentType=context.ContentTypes.Include(“父”).AsNoTracking().FirstOrDefault(x=>x.Id.Equals(contentTypeId));
AddRange(contentType.ContentTypeColumns.ToList());
while(contentType.Parent!=null)
{
AddRange(contentType.Parent.ContentTypeColumns.ToList());
contentType=contentType.Parent;
}    
}
返回result.ToList();
}

注意:如果您需要查看此操作中涉及的我的域模型,您可以参考

如果您需要停止延迟加载和动态更改跟踪,您可以简单地将其关闭:

using (SCGREDbContext context = new SCGREDbContext())
{   
    context.Configuration.ProxyCreationEnabled = false;
    ...
}

延迟加载?这会导致这种情况。我知道,在这种特殊情况下,我试图避免延迟加载,但我找不到解决方法。有什么建议吗?可能是完美的复制品!这帮我节省了很多时间!