title: Lambda expression execution
body: <p>When the DoTranslation method is run, the output is the same hash code for
  all of the TranslatedObjects.  Why is this happening as opposed to having a new List for each TranslatedObject?</p>
  
  <pre><code>public class TranslatedObject
  {
      public static Expression&lt;Func&lt;OriginalObject, TranslatedObject&gt;&gt; ObjectTranslator = o =&gt; new TranslatedObject
      {
          id = o.id
          translatedList = new List&lt;String&gt;()
      };
  
      public int id { get; set; }
      public List&lt;String&gt; translatedList { get; set; }
  }
  
  
  public class Translator
  {
      public void DoTranslation()
      {
          //3 objects returned with ids 1, 2, and 3 respectively
          IQueryable&lt;OriginalObject&gt; originalObjects = dataContext.OriginalObjects.Where(o =&gt; o.id == 1 || o.id == 2 || o.id == 3);
  
          var translatedObjects = originalObjects.Select(TranslatedObject.ObjectTranslator).ToArray();
  
          foreach(TranslatedObject translated in translatedObjects)
          {
              Console.WriteLine(translated.translatedList.GetHashCode());
          }
      }
  }
  </code></pre>
  
  <p>UPDATE: Changed service call to the following linq-to-sql call: dataContext.OriginalObjects.Where(o => o.id == 1 || o.id == 2 || o.id == 3).</p>