Description:
I am trying to use the .NET connector latest 6.2.3 Beta with VS2010 and Entity Framework 4.0 and I get an EntityCommandExecutionException in the following setup:
I have two tables which have no Primary - Foreign Key association between them in the database (not up to me at this point), so instead I have created one by hand in the Entity Framework designer (right click on a table -> New -> Association). However when I try to use it e.g via:
foreach (var project in Entities.Projects)
Console.WriteLine (project.Phases.Count);
where the "Phases" property expresses the relationship between the Project table and the Phases table (one to many) I get:
System.Data.EntityCommandExecutionException was unhandled by user code
Message=An error occurred while executing the command definition. See the inner exception for details.
Source=System.Data.Entity
StackTrace:
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.Execute(MergeOption mergeOption)
at System.Data.Objects.DataClasses.EntityCollection`1.Load(List`1 collection, MergeOption mergeOption)
at System.Data.Objects.DataClasses.EntityCollection`1.Load(MergeOption mergeOption)
at System.Data.Objects.DataClasses.RelatedEnd.Load()
at System.Data.Objects.DataClasses.RelatedEnd.DeferredLoad()
at System.Data.Objects.DataClasses.EntityCollection`1.GetEnumerator()
... ASP.NET lines here omitted...
InnerException: MySql.Data.MySqlClient.MySqlException
Message=There is already an open DataReader associated with this Connection which must be closed first.
Source=MySql.Data
ErrorCode=-2147467259
Number=0
StackTrace:
at MySql.Data.MySqlClient.MySqlCommand.CheckState()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
InnerException:
How to repeat:
1. Create two tables e.g. Project with an Id and Phase with an Id and a ProjectId column
2. Import in Entity Framework
3. Create an Association one to many Project - Phase (one project - many phases)
4. Try to use the association programatically.