在C#中将System.Data.Entity.DynamicProxies转换为(非代理)类

时间:2015-09-24 12:07:51

标签: c# database entity-framework dynamic-proxy

我从数据库中获取一些数据并将其存储在全局变量中,如下所示:

//Global Variable
public static List<stuff> Stuff;

using (var context = new StuffContext()) 
{ 
    stuff = new List<stuff>();
    stuff = (from r in context.Stuff
                select r).ToList(); 
}

我遇到的问题是上下文关闭,当我希望访问存储在全局变量中的一些数据时,我不能。

数据是System.Data.Entity.DynamicProxies.Stuff而不是Application.Model.Stuff,这意味着当我尝试对数据执行某些操作时,我会收到此错误:

"The ObjectContext instance has been disposed and can no longer be used for operations that require a connection."

我的问题是,我如何使用上面的代码作为示例,将/转换为我想要的类型,以便我可以在我的应用程序中使用其他数据?

编辑:快速屏幕抓取错误: enter image description here

1 个答案:

答案 0 :(得分:0)

解决方案毕竟是由于延迟加载。

我不得不告诉查询抓取所有内容,以便在上下文关闭时我仍然可以访问数据。 这是我必须做出的改变:

public static List<stuff> Stuff;

using (var context = new StuffContext()) 
{ 
    stuff = new List<stuff>();
    stuff = (from r in context.Stuff
            .Include(s => s.MoreStuff).Include(s => s.EvenMoreStuff)
            select r).ToList(); 
}