Я видел некоторые книги (например, код фреймворка сущности объекта сначала Джулия Лерман) определяет свои классы домена (POCO) без инициализации свойств навигации, таких как:
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; }
}
некоторые другие книги или инструменты (например, Entity Framework Power Tools) при создании POCOs инициализируют свойства навигации для класса, например:
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; }
}
Q1: Какой из них лучше? Зачем? Плюсы и минусы?
Edit:
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; }
}