加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 导致的原因:“在创建模型时无法使用上下文.”?

发布时间:2020-12-15 21:26:45 所属栏目:百科 来源:网络整理
导读:我是MVC和实体框架的新手. 我有一个简单的Azure MVC 3 Web应用程序.我正在使用Entity Framework和Ninject,我的数据存储在SQL数据库中. 每当我尝试向我的存储库发出并发请求时,我收到此错误消息.例如,一个存储库是图像标题,因此当页面加载时,如果有多个图片,
我是MVC和实体框架的新手.

我有一个简单的Azure MVC 3 Web应用程序.我正在使用Entity Framework和Ninject,我的数据存储在SQL数据库中.

每当我尝试向我的存储库发出并发请求时,我收到此错误消息.例如,一个存储库是图像标题,因此当页面加载时,如果有多个图片,它通常会失败并显示以下消息:

“在创建模型时不能使用上下文.”

这是我的连接字符串:

<add name="EFDbContext" connectionString="Data Source=.SQLEXPRESS;Initial Catalog=TheDBName; Integrated Security=SSPI; MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>

对于Ninject,当我绑定接口时,我尝试将其更改为使用InTransientScope和InRequestScope.没有不同.

this.ninjectKernel.Bind<ICaptionsRepository>().To<EFCaptionRepository>().InTransientScope();

它失败的部分在这里:

Caption foundCaption = currentCaptionRepository.Captions.FirstOrDefault(a => a.ID == pictureID);

如果您需要任何其他信息以帮助找到问题,请与我们联系.

干杯!

编辑:这是堆栈跟踪

   at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   at System.Data.Entity.Internal.InternalContext.Initialize()
   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
   at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
   at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source,Expression`1 predicate)
   at MVCProject.WebUI.Controllers.ImageController.GetImageByIDWithSize(String id) in C:MVCProjectMVCProjectMVCProject.WebUIControllersImageController.cs:line 131
   at MVCProject.WebUI.Controllers.ImageController.GetImage(String id) in C:MVCProjectMVCProjectMVCProject.WebUIControllersImageController.cs:line 215
   at lambda_method(Closure,ControllerBase,Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass15.b__12()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter,ActionExecutingContext preContext,Func`1 continuation)

解决方法

什么是底层DbContext的生活方式?我猜你的存储库依赖于db上下文,如果你的DbContext被注册为单例,这将会爆炸.如果是这种情况,请调整DbContext pr请求的范围,创建DbContext的成本很低,并且不打算作为单个实例保留.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读