Entity Framework 4.1 Recuperando dados de auto-referência

Estou usando o código do Entity Framework 4.1 primeiro e o ASP.NET MVC 3 e estou lutando para obter minha instalação de referência própria corretamente. Eu tenho uma classe de categoria. Deve ser auto-referente a si mesmo. Uma categoria pode ser uma categoria pai quando o ParentCategoryId na tabela é nulo. Se uma categoria tiver um ParentCategoryId com um valor, significa que pertence a uma categoria pai.

Eu segui issoartig no Code Project.

Aqui está minha classe de categoria:

public class Category
{
     public int Id { get; set; }
     public string Name { get; set; }
     public string Description { get; set; }
     public string MetaKeywords { get; set; }
     public string MetaDescription { get; set; }
     public bool IsActive { get; set; }
     public virtual Category ParentCategory { get; set; }
     public int? ParentCategoryId { get; set; }
}

Minha classe de contexto:

public class PbeContext : DbContext
{
     public DbSet<Category> Categories { get; set; }

     protected override void OnModelCreating(DbModelBuilder dbModelBuilder)
     {
          dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

          dbModelBuilder.Entity<Category>()
               .HasOptional(c => c.ParentCategory)
               .WithMany()
               .HasForeignKey(p => p.ParentCategoryId);
     }
}

Não tem certeza se o descrito acima está correto?

Alguém pode me ajudar a acertar isso? O que eu preciso é que, quando eu consulta uma categoria por ID, ela deve trazer de volta a categoria pai (carregada apenas quando necessário). Além disso, ele deve carregar quaisquer categorias filho (somente quando necessário). Ainda não adicionei uma lista à classe de categoria para as categorias filho.

Como seriam as perguntas acima para recuperar uma categoria com a categoria pai e as categorias filho?

EDITA

É assim que recupero minha categoria:

public Category GetById(int id)
{
     return db
          .Categories
          .Find(id);
}

Como a referência ParentCategory pode ser nula, como eu exibi-lo na exibição? Eu tenho o seguinte:

@Model.ParentCategory.Name

.. mas isso não causará um erro se a categoria não tiver uma categoria pai associada? Como eu o exibi na exibição?

questionAnswers(1)

yourAnswerToTheQuestion