title: Getting multiple results in almost identical queries
body: <p>I have two very similar queries in FNH, acting on similar classes, Project and Foo.
  Foo is simply a new local class derived from Project.  Its classMap is derived from Project's classMap as well. </p>
  
  <pre><code>    public class Foo:pcm.Domain.Project { }
      public class FooMap : pcm.Mappings.ProjectMapBase&lt;Foo&gt; { }
  </code></pre>
  
  <p>Here are my queries, using the same session:</p>
  
  <pre><code>        var list = session.Query&lt;Project&gt;()
              .Take(10)
              .ToList();
  
          var list2 = session.Query&lt;foo&gt;()
              .Take(10)
              .ToList();
  
          Assert.Equal(list.Count(),list2.Count());
  </code></pre>
  
  <p>The assertion fails because list has 30 elements, and list2 has 10.  There are indeed only 10 projects.</p>
  
  <p><strong>Edit</strong>: Here are the mappings for the base, which sits in its own DLL.</p>
  
  <pre><code>public class ProjectBaseMapTemplate&lt;T&gt; : ClassMap&lt;T&gt; where T: ProjectBase
  {
      public ProjectBaseMapTemplate()
      {
          Table("proj");
          Id(x =&gt; x.MasterKey, "master_key");
          Map(x =&gt; x.ProjectName).Column("project_name");
          Map(x =&gt; x.ProjectTitle, "project_title");
      }
  }
  public class ProjectBaseMap : ProjectBaseMapTemplate&lt;ProjectBase&gt; { }
  </code></pre>
  
  <p>Here are the derived class, which sit in another DLL.  This separation of classes into DLLs is fundamentally important to how I need to use FNH.</p>
  
  <pre><code>    public class Foo:pcm.Domain.ProjectBase 
      {
              public virtual int ProjectState{ get; set; }
      }
      public class FooMap : pcm.Mappings.ProjectBaseMapTemplate&lt;Foo&gt; 
      {
          public FooMap()
          {
              Map(x=&gt; x.ProjectState).Column("project_state");
          }
      }
  </code></pre>
  
  <p><strong>Update</strong> Here is the ProjectBase</p>
  
  <pre><code>public class ProjectBase
  {
      public virtual string MasterKey { get; set; }
      public virtual string ProjectName { get; set; }
      public virtual string ProjectTitle { get; set; }
  }
  </code></pre>