title: Why do child entitites in Entity Framework include a virtual property referencing the parent?
body: <p>I have the following classes that I am using with EF5</p>
  
  <pre><code> public class Question
   {
      public Question()
      {
          this.Answers = new List&lt;Answer&gt;();
      } 
      public int QuestionId { get; set; }
      ...
      ...
      public string Title { get; set; }
      public virtual ICollection&lt;Answer&gt; Answers { get; set; }
  }
  
  public class Answer
  {
      public int AnswerId { get; set; }
      public string Text { get; set; }
      public int QuestionId { get; set; }
      public virtual Question Question { get; set; }
  }
  </code></pre>
  
  <p>Can someone tell me why there is a need for the property:</p>
  
  <pre><code>public virtual Question Question { get; set; }
  </code></pre>
  
  <p>If I never intend to do automatic lazyloading but do intend to sometimes bring that object in with an include then do I need the virtual property like this:</p>
  
  <pre><code>        var questions = _questionsRepository.GetAll()
              .Include(a =&gt; a.Answers);
  </code></pre>
  
  <p>The reason I am asking is because when used with Web API it is giving me circular reference errors with json.</p>