在 C# 中将 System.Data.Entity.DynamicProxies 转换为(非代理)class
Convert System.Data.Entity.DynamicProxies to (non proxy) class in C#
我正在从数据库中获取一些数据并将其存储在全局变量中,如下所示:
//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."
我的问题是,以上面的代码为例,我如何才能转换/转换为我想要的类型,以便我可以在我的应用程序中的其他地方使用数据?
编辑:错误的快速屏幕截图:
解决方案毕竟是延迟加载造成的。
我必须告诉查询获取所有内容,以便在上下文关闭时我仍然可以访问数据。
这是我必须做出的改变:
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();
}
尝试在您的项目 BbContext 构造函数中禁用 ProxyCreationEnabled,如下所示:
Configuration.ProxyCreationEnabled = false;
我正在从数据库中获取一些数据并将其存储在全局变量中,如下所示:
//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."
我的问题是,以上面的代码为例,我如何才能转换/转换为我想要的类型,以便我可以在我的应用程序中的其他地方使用数据?
编辑:错误的快速屏幕截图:
解决方案毕竟是延迟加载造成的。
我必须告诉查询获取所有内容,以便在上下文关闭时我仍然可以访问数据。 这是我必须做出的改变:
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();
}
尝试在您的项目 BbContext 构造函数中禁用 ProxyCreationEnabled,如下所示:
Configuration.ProxyCreationEnabled = false;