Как избежать «Уже существует связанный открытый DataReader с этим соединением, которое должно быть закрыто в первую очередь ». в MySql / net connector?

У меня есть следующий фрагмент кода:

public TimestampedRowStorage GetTimestampedRowStorage(string startTime, string endTime, long trendSettingID, int? period)
    {
        var timestampedList = (from t in dataContext.TrendRecords
                                     where t.TrendSetting_ID == trendSettingID
                                     select t).ToList();

        return new TimestampedRowStorage
        {
            TimestampedDictionary = timestampedList.ToDictionary(m => m.Timestamp,
                m => (from j in dataContext.TrendSignalRecords
                      where j.TrendRecord_ID == m.ID
                      select j).ToDictionary(p => p.TrendSignalSetting.Name,
                p => (double?)p.Value))
        };
    }

Но я всегда получаю следующее исключение:

Уже есть открытый DataReader связанные с этим подключением, которое сначала необходимо закрыть.

Вот трассировка стека:

[MySqlException (0x80004005): есть уже связанный открытый DataReader с этим подключением, которое должно быть закрытые первыми.]
MySql.Data.MySqlClient.MySqlCommand.CheckState () +237 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader (CommandBehavior поведение) +146
MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader (CommandBehavior поведение) +47
System.Data.Common.DbCommand.ExecuteReader (CommandBehavior поведение) +10
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands (EntityCommand entityCommand, CommandBehavior поведение) +443

[EntityCommandExecutionException: An произошла ошибка при выполнении определение команды. Увидеть внутреннее исключение для подробностей.]
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands (EntityCommand entityCommand, CommandBehavior поведение) +479
System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute (ObjectContext контекст, ObjectParameterCollection parameterValues) +736
System.Data.Objects.ObjectQuery 1.GetResults (Nullable 1 forMergeOption) +149
System.Data.Objects.ObjectQuery 1.Execute (MergeOption mergeOption) +31
System.Data.Objects.DataClasses.EntityReference
1.Загрузить (MergeOption mergeOption) +148
System.Data.Objects.DataClasses.RelatedEnd.Load () +37 System.Data.Objects.DataClasses.RelatedEnd.DeferredLoad () +8032198 System.Data.Objects.DataClasses.EntityReference 1.get_Value () +12 Nebula.Models.TrendSignalRecord.get_TrendSignalSetting () в C: \ Users \ Bruno Леонардо \ документы \ visual studio 2010 \ Projects \ Nebula \ Nebula \ Models \ SmgerDataModel.Designer.cs: 2528 Nebula.Models.Trends.TrendRepository. b__b (TrendSignalRecord p) в C: \ Users \ Bruno Леонардо \ документы \ visual studio 2010 \ Projects \ Nebula \ Nebula \ Models \ Trends \ TrendRepository.cs: 229 System.Linq.Enumerable.ToDictionary (IEnumerable 1 источник, Func 2 keySelector, Func 2 elementSelector, IEqualityComparer 1 компаратор) +226
System.Linq.Enumerable.ToDictionary (IEnumerable
1 источник, Func 2 keySelector, Func 2 elementSelector) +54
Nebula.Models.Trends.TrendRepository.b__a (TrendRecord m) в C: \ Users \ Bruno Леонардо \ документы \ visual studio 2010 \ Projects \ Nebula \ Nebula \ Models \ Trends \ TrendRepository.cs: 227 System.Linq.Enumerable.ToDictionary (IEnumerable 1 источник, Func 2 keySelector, Func 2 elementSelector, IEqualityComparer 1 компаратор) +240
System.Linq.Enumerable.ToDictionary (IEnumerable 1 источник, Func 2 keySelector, Func 2 elementSelector) +53
Nebula.Models.Trends.TrendRepository.GetTimestampedRowStorage (String startTime, строка endTime, Int64 trendSettingID, Nullable
1 период) в C: \ Users \ Bruno Леонардо \ документы \ visual studio 2010 \ Projects \ Nebula \ Nebula \ Models \ Trends \ TrendRepository.cs: 224 Nebula.Models.Trends.TrendRepository.GetTrendSettingContainer (String startTime, строка endTime, Int64 unitID, Int64 plantID, Int64 trendSettingID, GridSortOptions gridSortOptions, Nullable 1 страница, Nullable 1 recordsPerPage, Nullable 1 период, Int64 [] тенденции, допускает значение NULL 1 allTrends) в C: \ Users \ Bruno Леонардо \ документы \ visual studio 2010 \ Projects \ Nebula \ Nebula \ Models \ Trends \ TrendRepository.cs: 206 Nebula.Controllers.GeneratingUnitController.TrendSettings (Int64 id, Int64 plantID, Int64 trendSettingID, String startTime, String endTime, допускающее значение NULL 1 страница, Обнуляемый 1 recordsPerPage, Параметры GridSortOptions, допускающие значение NULL 1 период, Int64 [] тенденции, допускает значение NULL 1 allTrends) в C: \ Users \ Bruno Леонардо \ документы \ visual studio 2010 \ Projects \ Nebula \ Nebula \ Controllers \ GeneratingUnitController.cs: 148 lambda_method (Закрытие, ControllerBase , Object []) +543

Ребята, вы можете мне помочь?

5
задан Bruno Machado - vargero 7 June 2011 в 22:00
поделиться