title: List contains one object why?
body: <p>I have a problem where an object containing a list property holds 1 item, which it shouldn't (it should be empty). </p>
  
  <p>The Station class contains a list of edges (List Edges). 
  The Edge class have a EndStation, which is of the type Station. </p>
  
  <p>The problem is, after returning the IQueryable from GetEdgesByStartStation(), the EndStation on each Edge contains a list of edges (List Edges) which is not empty (as it should).
  The item in the list are the Station (edge.EndStation) it self. I've tried to illustrate it with comments in the code below</p>
  
  <pre><code>public IQueryable&lt;Edge&gt; GetEdgesByStartStation(Station station)
  {
      var edges = db.Edges.Where(x =&gt; x.StartStationId.Equals(station.ID));
      foreach (var edge in edges)
      {
          edge.EndStation = db.Stations.FirstOrDefault(x =&gt; x.ID.Equals(edge.EndStationId)); 
          //Here the edge.EndStation.Edges would contain 1 item, edge.EndStation 
          //eg. edge.EndStation = "Miami", edge.EndStation.Edges = { "Miami" }
      }
  
      return edges;
  }
  </code></pre>
  
  <p>What I wanted this code to do, was get all the edges for the Station passed to the method. For each edge, connect a EndStation with an empty list of edges.</p>
  
  <p>Station class:</p>
  
  <pre><code>public partial class Station
  {
      public Station()
      {
          this.Reservations = new List&lt;Reservation&gt;();
          this.StationMaintenances = new List&lt;StationMaintenance&gt;();
      }
  
      [DataMember]
      //[JsonConverter(typeof(Int32))] 
      public int ID { get; set; }
      [DataMember]
      //[JsonConverter(typeof(Int32))] 
      public int TypeId { get; set; }
      [DataMember]
      public string Title { get; set; }
      [DataMember]
      public string Description { get; set; }
      [DataMember]
      public decimal StationLat { get; set; }
      [DataMember]
      public decimal StationLong { get; set; }
      [DataMember]
      public bool IsOperational { get; set; }
      [DataMember]
      public bool IsActive { get; set; }
      [DataMember]
      public DateTime CreatedDate { get; set; }
      [DataMember]
      public virtual BatteryStorage BatteryStorages { get; set; }
      [DataMember]
      public virtual List&lt;Reservation&gt; Reservations { get; set; }
      [DataMember]
      public virtual List&lt;StationMaintenance&gt; StationMaintenances { get; set; }
      [DataMember]
      public virtual List&lt;Edge&gt; Edges { get; set; }
      [DataMember]
      public virtual StationType StationType { get; set; }
  }
  </code></pre>
  
  <p>Edge class:</p>
  
  <pre><code>public partial class Edge
  {
      [DataMember]
      public int ID { get; set; }
      [DataMember]
      public int StartStationId { get; set; }
      [DataMember]
      public int EndStationId { get; set; }
      [DataMember]
      public virtual Station EndStation { get; set; }
      [DataMember]
      public decimal Distance { get; set; }
      [DataMember]
      public decimal Time { get; set; }
      [DataMember]
      public bool IsActive { get; set; }
  
  }
  </code></pre>
  
  <p>How can this be? </p>