我看过一些书(例如programming entity framework code first Julia Lerman),它们定义领域类(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; }
}
在生成POCOs时,一些其他的书籍或工具(例如Entity Framework Power Tools)会初始化类的导航属性,例如:
一些其他的书籍或工具,例如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; }
}
问题1:哪一个更好?为什么?优缺点是什么?
编辑:
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; }
}
stackoverflow
,因为我们只是新建了集合而不是集合中的项。我的问题是关于一对一关系,比如person
和account
之间的关系确实会导致stackoverflow
。我已经更新了问题。 - Iman Mahmoudinasab.Include
来进行。 - spender