私はMVCとEntity Frameworkが初めてです。原因:「モデルの作成中にコンテキストを使用できません。」
私は単純なAzure MVC 3ウェブアプリケーションを持っています。私はEntity FrameworkとNinjectを使用しています。私のデータはSQLデータベースに保存されています。
リポジトリへの同時要求を作成しようとすると、このエラーメッセージが表示されます。たとえば、1つのリポジトリは画像キャプションなので、ページが読み込まれるときに複数の画像がある場合は、通常このメッセージで失敗します。
"モデルの作成中にコンテキストを使用できません。私はInTransientScopeともInRequestScopeを使用するように変更しようとしたインターフェースをバインドする際に、Ninjectのために
<add name="EFDbContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TheDBName; Integrated Security=SSPI; MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
:
は、ここに私の接続文字列です。変わりはない。
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)
スタックトレースとは何ですか? – SLaks
ちょうど私のポストにそれを追加しました。ありがとう! – kodikas
失敗したコードはどこにありますか?それはアプリケーションを再起動したとき、または常時起きているのでしょうか?これが発生したときに実行されている同時要求の数はいくつですか? –