使用新Devart支持的DbContexts的任务会引发错误

时间:2016-02-01 08:05:07

标签: entity-framework asynchronous db2 task devart

我现在已经把头发拉了一段时间了:

当我在几个任务中使用Devart DB2提供程序支持的DbContext时,我得到一个带有以下stacktrace的NullReferenceException

at Devart.Data.DB2.DB2ParameterCollection.Clear()
at Devart.Data.DB2.Entity.v.g()
at System.Data.Entity.Core.Common.DbProviderServices.CloneDbCommand(DbCommand fromDbCommand)
at System.Data.Entity.Core.Common.DbCommandDefinition.CreateCommand()
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.PrepareEntityCommandBeforeExecution(EntityCommand entityCommand)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
at System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

我确实产生了几个新的上下文,但是使用相同的登录到一个数据库,每个方法都以Task.Factory.StartNew开始,它们都开始与上面的错误发生冲突。 我检查了创建的上下文,他们都得到了一个新的id,所以我不会以任何方式重复使用同一个。

当我按顺序运行它们时,一个接一个,没问题。 即使我与另一个登录并行运行其他,也没问题。

以前有人见过这样的事吗?

1 个答案:

答案 0 :(得分:0)

这是由Devart的dotConnect for DB2中的一个错误引起的。

它于2016年2月11日修复,但由于Devart缺乏nuget支持,我花了很长时间才意识到:(

https://www.devart.com/dotconnect/db2/revision_history.html