gpt4 book ai didi

c# - ObjectContext 实例已被释放

转载 作者:太空狗 更新时间:2023-10-29 23:26:16 39 4
gpt4 key购买 nike

我按照此处描述的方式使用 Entity Framework : Entity framework uses a lot of memory

我意识到我需要使用“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
}

对于这个例子,我得到:

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

我做错了什么?

最佳答案

我可能是错的,但是我首先想到的是 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

问题归结为 UnitOfWork.Current 究竟做了什么以及应该做什么。它是否应该在每次访问时都创建一个新对象?除非它被处置,否则它应该保留引用吗?这并不明显,您可能对此感到困惑。

关于c# - ObjectContext 实例已被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016025/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com