title: How to avoid calling virtual function in constructor?
body: <p>Most (if not all) my Entity Framework POCOs have virtual functions. I need these functions to be virtual so that the entities can be lazy-loaded.</p>
  
  <p>If I initialize <code>Accommodations</code> in constructor then I will be calling a virtual function in constructor, which is bad practice.</p>
  
  <p>But how can I initialize <code>Accommodations</code> if not in the constructor?</p>
  
  <pre><code>public class Venue
  {
      public Venue()
      {
          Accommodations = new HashSet&lt;Accommodation&gt;();
      }
  
      public virtual ICollection&lt;Accommodation&gt; Accommodations { get; set; }
  }
  </code></pre>