c# – 导致的原因:“在创建模型时无法使用上下文.”?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 导致的原因:“在创建模型时无法使用上下文.”?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2471字,纯文字阅读大概需要4分钟。
内容图文
![c# – 导致的原因:“在创建模型时无法使用上下文.”?](/upload/InfoBanner/zyjiaocheng/769/0e361b321a3f46c886c64c2d7e5a1382.jpg)
我是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# – 导致的原因:“在创建模型时无法使用上下文.”?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。