EF codefirst: ¿Debo inicializar las propiedades de navegación?

Había visto algunos libros (por ejemplo,entidad de programación código marco primero Julia Lerman) definen sus clases de dominio (POCO) sin inicialización de las propiedades de navegación como:

public class User
{
    public int Id { get; set; }
    public string UserName { get; set; }

    public virtual ICollection<Address> Address { get; set; }
    public virtual License License { get; set; }
}

algunos otros libros o herramientas (por ejemplo,Entity Framework Power Tools) cuando genera POCOs inicializa las propiedades de navegación de la clase, como:

public class User
{
    public User()
    {
        this.Addresses = new IList<Address>();
        this.License = new License();
    }
    public int Id { get; set; }
    public string UserName { get; set; }

    public virtual ICollection<Address> Addresses { get; set; }
    public virtual License License { get; set; }
}
P1: ¿Cuál es mejor? ¿por qué? ¿Pros y contras?

Editar:

public class License
{
    public License()
    {
        this.User = new User();
    }
    public int Id { get; set; }
    public string Key { get; set; }
    public DateTime Expirtion { get; set; }

    public virtual User User { get; set; }
}
P2: En segundo lugar, habría desbordamiento de pila si la clase `License` tiene una referencia a la clase` User` también. Significa que deberíamos tener una referencia unidireccional. (?) ¿Cómo debemos decidir cuál de las propiedades de navegación se debe eliminar?

Respuestas a la pregunta(6)

Su respuesta a la pregunta