Ленивая загрузка с помощью коннектора MySQL

У меня есть проект 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 () весь мой объект в исходном запросе?

5
задан PaulH 1 November 2011 в 16:06
поделиться