Entity framework 依赖注入和实体框架错误
在我们的mvc应用程序中,我总是收到电子邮件发送给我的错误,这些错误对我来说毫无意义。我们在控制器和存储库中使用structuremap进行依赖注入。我今天遇到的最新错误是ExecuteReader需要一个开放且可用的连接。连接的当前状态为“打开” 下面是对代码/结构的一种描述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 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();