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

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

概述我是MVC和实体框架的新手. 我有一个简单的Azure MVC 3 Web应用程序.我正在使用Entity Framework和Ninject,我的数据存储在SQL数据库中. 每当我尝试向我的存储库发出并发请求时,我收到此错误消息.例如,一个存储库是图像标题,因此当页面加载时,如果有多个图片,它通常会失败并显示以下消息: “在创建模型时不能使用上下文.” 这是我的连接字符串: <add name= 我是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:\MVCProject\MVCProject\MVCProject.WebUI\Controllers\ImageController.cs:line 131   at MVCProject.WebUI.Controllers.ImageController.Getimage(String ID) in C:\MVCProject\MVCProject\MVCProject.WebUI\Controllers\ImageController.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的成本很低,并且不打算作为单个实例保留. 总结

以上是内存溢出为你收集整理的c# – 导致的原因:“在创建模型时无法使用上下文.”?全部内容,希望文章能够帮你解决c# – 导致的原因:“在创建模型时无法使用上下文.”?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1228539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存