Como resolvi o erro de referência circular de serialização Json?

Existe postaqui que pergunta como resolver o erro de referência circular ao retornar um objeto serializado via EF4 CTP5. Encontrei esse mesmo problema com um projeto de formulários da web do WCF há um tempo.

Consegui "resolver" esse problema no meu projeto de formulários WCF / web e no meu projeto MVC3. Eu não acho que importa que tipo de projeto, pois isso parece ser uma "coisa" de serialização da EF.

Resolvi o problema desabilitando o ProxyCreation no meu construtor ObjectContext assim:

public class MyObjectContext : DbContext, IDbContext
{
     public MyObjectContext(string connectionStringName) : base(connectionStringName)
     {
        ((IObjectContextAdapter)this).ObjectContext.ContextOptions.ProxyCreationEnabled = false;
     }
     public DbSet<Product> Products {get;set;}
     //etc.
} 

Minha pergunta é: Alguém poderia explicar por que isso aparentemente resolveria o problema?

Eu acho que o problema tem a ver com as propriedades de navegação no meu POCO, mas depois disso estou perplexo. Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion