title: The properties expression is not valid. The expression should represent a property
body: <p>I have these two entities</p>
  
  <pre><code>public class Song : IPathHavingEntity
      {
          public int Id { get; set; }
          [Required]
          public string Path { get; set; }
          [Required]
          public virtual Album Album { get; set; }
          [Required]
          public int TrackNumber { get; set; }
      }
  
  public class Album : IPathHavingEntity
      {
          public int Id { get; set; }
          [Required]
          public string Path { get; set; }
          public virtual IEnumerable&lt;Song&gt; Songs { get; set; }
          [Required]
          public int AlbumNumber { get; set; }
      }
  </code></pre>
  
  <p><code>Path</code> is defined in the <code>IPathHavingEntity</code> interface.</p>
  
  <p>In my Seed method I want to add a song to the <code>Songs</code> table only if it doesn't exist.  For this reason I check that the album path and song path combination don't exist already before adding it thus</p>
  
  <pre><code>context.Songs.AddOrUpdate(
      s =&gt; new { FilePath = s.Path, AlbumPath = s.Album.Path }, 
      new Song { TrackNumber = 1, Path = "01 Intro.mp3", Album = one });
  </code></pre>
  
  <p>The problem is I get this error</p>
  
  <p><code>The properties expression 's =&gt; new &lt;&gt;f__AnonymousType0``2(FilePath = 
  s.Path, AlbumPath = s.Album.Path)' is not valid. The expression should 
  represent a   property: C#: 't =&gt; t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't =&gt; new { t.MyProperty1, t.MyProperty2 }'  VB.Net: 'Function(t) New With { t.MyProperty1, t.MyProperty2 }'.</code></p>
  
  <p>What's the problem?</p>