Asp.net异步Paralle EF查询(URF.Net框架)

时间:2018-06-22 16:38:07

标签: asp.net multithreading model-view-controller parallel-processing autofac

我在解决方案上实现了URF.Net框架,以尝试解决异步并行问题,我需要运行以下任务:

List<Task> tasks = new List<Task>();

        foreach (var timesheet in tsvm)
        {
            tasks.Add(Task.Run(() => addts(usrts, ts, searchDateFrom, searchDateTo)));

        }

        Task.WhenAll(tasks);

}



private void addts(UsersTimeSheetsWeeklyViewModel urts, tsvm, DateTime searchDateFrom, DateTime searchDateTo)
        {

                       var tsr= tsrService.getTsr(timesheet.Id, searchDateFrom, searchDateTo, null, "Date", true);
....

但是我得到了味精:

  

System.InvalidOperationException:“由于DbContext已被处置,因此无法完成该操作。”

我知道我只需要一个上下文并创建一个工厂即可完成这项工作,但是我已经在使用这种模式,因此我需要帮助来完成这项工作。

此框架的我的Autofac COntainer设置:

 builder.RegisterType<AgendaEntities>().As<DbContext>().InstancePerLifetimeScope();
            builder.RegisterType<Repository.Pattern.Ef6.UnitOfWork>().As<IUnitOfWorkAsync>().InstancePerLifetimeScope();
            builder.RegisterType<Repository.Pattern.Ef6.Repository<TimeSheetRecord>>().As <IRepositoryAsync<TimeSheetRecord>>().InstancePerLifetimeScope();
            builder.RegisterType<TimeSheetRecordServiceAsync>().As<ITimeSheetRecordServiceAsync>().InstancePerLifetimeScope();

0 个答案:

没有答案