gpt4 book ai didi

entity-framework - Entity Framework 和负载测试

转载 作者:行者123 更新时间:2023-12-04 07:23:34 26 4
gpt4 key购买 nike

我很难理解为什么这段代码失败了

我有一个测试方法

IUnitOfWork unitofwork = EFUnitOfWork.CreateInstance();
IRepository<InformationRequest> informationRequestRepository = unitofwork.CreateRepository<InformationRequest>();
IEnumerable<InformationRequest> requests = informationRequestRepository.ToList();
unitofwork.Dispose();

EFUnityOfWork.CreateInstance calls the EFUnitOfwork Constructor
public EFUnitOfWork()
{

_currentContext = new MyDataContext();
}

这是 CreateRepository 的代码
public IRepository<T> CreateRepository<T>()
{
return new Repository<T>(_currentContext);
}

上面的测试不适用于负载测试。当我尝试运行它时,它说
System.Data.EntityException:底层提供程序在打开时失败。 ---> System.InvalidOperationException: 连接未关闭。连接的当前状态是连接。

我每次都在处理上下文并创建一个新的上下文。我不明白我哪里出错了

最佳答案

您的代码 EFUnitOfWork.CreateInstance()是一个静态方法。

当 2 个线程同时调用它时,它们可以返回相同的上下文。然后你会得到你看到的错误。

您可以通过锁定来修复它,以便一次仅由一个线程调用它。但是时间会引入性能瓶颈。

关于entity-framework - Entity Framework 和负载测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1848927/

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