編集:accountrepositoryの問題-membershipprovider
私は現在、未完成のゲームを探して更新する無限ループを作りたいタイプのゲームを構築しようとしています。(数分おき)
以下は、継続的に実行したいコードであり、application_startでEngineクラスを呼び出します。試してみると、モデルがまだ作成されていないという問題が発生します。
モデルが作成されるまで待ってからそのスレッドを開始する方法はありますか?
前もって感謝します !(以下のスタックトレース)
「モデルの作成中はコンテキストを使用できません。」
public class VluchtEngine
{
private VluchtRepository _vluchtRepository;
private TimeSpan WaitTime = new TimeSpan(0, 0,30);
public VluchtEngine(PigeonFancierContext c)
{
_vluchtRepository = new VluchtRepository(c);
Task t2 = Task.Factory.StartNew(Run);
}
public void Run()
{
while (/*_vluchtRepository.FindAll().Where(p => p.IsGesimuleerd == false).Count() > 0)*/true)
{
foreach (var vlucht in _vluchtRepository.FindAll())
{
foreach (var duif in vlucht.Inschrijvingen)
{
duif.AfgelegdeAfstand += 1;
if (duif.AfgelegdeAfstand == vlucht.Afstand)
duif.IsAangekomen = true;
}
if(vlucht.Inschrijvingen.Where(p => p.IsAangekomen).Count() == 0)
{
vlucht.IsGesimuleerd = true;
}
}
_vluchtRepository.SaveChanges();
Thread.Sleep(WaitTime);
}
}
}
}
[InvalidOperationException: The context cannot be used while the model is being created.]
System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +577466
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +18
System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +63
System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +15
System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +37
System.Linq.Queryable.Where(IQueryable`1 source, Expression`1 predicate) +63
PigeonFancier.Infrastructuur.MelkerRepository.FindByEmail(String email) in C:\Users\Jonas\Documents\Visual Studio 2010\Projects\PigeonFancier\PigeonFancier\Infrastructuur\MelkerRepository.cs:39
PigeonFancier.Infrastructuur.MelkerModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) in C:\Users\Jonas\Documents\Visual Studio 2010\Projects\PigeonFancier\PigeonFancier\Infrastructuur\MelkerModelBinder.cs:22
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +317
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +116
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970061
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184