Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 依赖注入和实体框架错误_Entity Framework_Asp.net Mvc 5_Structuremap - Fatal编程技术网

Entity framework 依赖注入和实体框架错误

Entity framework 依赖注入和实体框架错误,entity-framework,asp.net-mvc-5,structuremap,Entity Framework,Asp.net Mvc 5,Structuremap,在我们的mvc应用程序中,我总是收到电子邮件发送给我的错误,这些错误对我来说毫无意义。我们在控制器和存储库中使用structuremap进行依赖注入。我今天遇到的最新错误是ExecuteReader需要一个开放且可用的连接。连接的当前状态为“打开” 下面是对代码/结构的一种描述 mvc controller (ITimesheetRepository di in constructor) ITimesheetRepository (IPaidLeaveRepository and IDbCont

在我们的mvc应用程序中,我总是收到电子邮件发送给我的错误,这些错误对我来说毫无意义。我们在控制器和存储库中使用structuremap进行依赖注入。我今天遇到的最新错误是ExecuteReader需要一个开放且可用的连接。连接的当前状态为“打开”

下面是对代码/结构的一种描述

mvc controller (ITimesheetRepository di in constructor)
ITimesheetRepository (IPaidLeaveRepository and IDbContext di in constructor)
IPaidLeaveRepository (IDbContext di in constructor)
错误发生在PaidLeaveRepo中的这一行

var used = _context.Summaries.Any(x => x.JobId == jobId) ? _cdc.Summaries.Where(x => x.JobId == jobId).Sum(x => x.PaidLeaveHours) : 0;
其他情况下,我会遇到错误,例如“Store update、insert或delete语句影响了意外的行数(0)。自从加载实体后,实体可能已被修改或删除”。当出现这些错误之一时,实体框架似乎会保留失败的查询,并且任何进一步的请求都会失败。然而,我认为一个新的http请求会触发我们的db上下文的一个新实例,所以我的想法是它不应该在另一个请求中遇到这个错误。解决此问题的唯一方法是进入服务器并停止/启动web应用程序池。下面是我们如何为datacontext连接structuremap的

For<IConDbContext>().HybridHttpOrThreadLocalScoped().Use(new ConDbContext(DataSources.ConDataSource));
For<ConDbContext>().HybridHttpOrThreadLocalScoped().Use(new ConDbContext(DataSources.ConDataSource));
For();
For();