У меня есть проект Visual Studio 2008 C # .NET 3.5, использующий MySql 5.1.53 и MySql Connector / Net 6.4.4 в Windows 7 x64. В моем приложении я запрашиваю свою базу данных как:
IQueryable<Zoo> my_query = from d in my_context_.MySet
.Include("Foo")
.Include("Bar")
where d.Fuzz.Status == (int)Status.Pending
orderby d.Order
select d;
foreach (Zoo z in my_query)
{
if (some_expression)
{
// Lazy load some more data from the query. This throws a
// MySqlException
z.Something.Load();
}
else
{
// Lazy load some other data from the query. This also throws a
// MySqlException
z.SomethingElse.Load();
}
}
Исключение, которое я получаю:
System.Data.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> MySql.Data.MySqlClient.MySqlException: There is already an open DataReader associated with this Connection which must be closed first.
Я действительно предпочел бы иметь возможность лениво загружать остальную часть моего объекта, поскольку его элементы необходимы. Есть ли способ сделать это, или мне нужно .Include () весь мой объект в исходном запросе?