Nao*_*aor 5 .net c# entity-framework
我按照这里描述的方式使用实体框架: 实体框架使用了大量内存
我意识到我需要使用"using"语句才能正常工作.我在做的时候:
using (IUnitOfWork uow = UnitOfWork.Current)
{
CompanyRepository rep = new CompanyRepository();
m_AllAccounts = rep.GetQuery().
Select(x => new Account(x)).ToList(); ///HERE I GET THE EXCEPTION
}
Run Code Online (Sandbox Code Playgroud)
对于这个例子,我得到:
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我可能是错的,但是我首先想到的是可能UnitOfWork.Current返回一个已经处理的工作单元。
想象一下下面的代码:
void MethodA ()
{
using (IUnitOfWork uow = UnitOfWork.Current)
{
// do some query here
}
}
void MethodB ()
{
using (IUnitOfWork uow = UnitOfWork.Current)
{
// do another query here
}
}
MethodA (); // works OK
// now UnitOfWork.Current is disposed
MethodB (); // raises exception
Run Code Online (Sandbox Code Playgroud)
问题归结为到底UnitOfWork.Current做什么以及应该做什么。每次访问时都应该创建一个新对象吗?除非被处置,否则是否应该保留引用?这并不明显,您可能对此感到困惑。