C# EF和初始化导航属性

C# EF和初始化导航属性,c#,entity-framework,C#,Entity Framework,我有点困惑。我有以下实体类EF public class Identity { public Identity() { } [Key] public long Id { get; set; } public string UserName { get; set; } public string Password { get; set; } public virtual

我有点困惑。我有以下实体类EF

public class Identity
    {
        public Identity()
        {

        }
        [Key]
        public long Id { get; set; }
        public string UserName { get; set; }
    public string Password { get; set; }
        public virtual ClientDetails ClientDetails { get; set; }

    }
我在StackOverFlow的几个地方读到,不建议在构造函数中初始化导航属性(而不是集合)

有人能帮我理解为什么会这样吗

谢谢
检索项目时,Anu导航属性由实体框架填充(至少当您使用Include()方法通知它填充该对象时)。在封面下,它将为您导航到的对象创建一个外键。这可以在生成的迁移中看到


当entity framework从数据库检索项时,构造函数中的任何代码实际上都将被忽略,因为它将使用反射来实例化类的实例(此过程需要默认构造函数,否则将引发运行时异常),然后使用反射,使用它从数据库中检索到的内容来设置各种属性的值。

谢谢Chris,那么这不适用于集合吗?为什么我们需要初始化集合?框架不是使用反射来初始化它吗?我实际上不确定集合有什么特别的不同。您是否能够提供一个链接,指向您在哪里看到的这些文章,它们在构造函数逻辑方面区分了两者?除非它像“对于代码的其余部分,空集合比空集合好”一样简单。