title: nhibernate mapping.JoinedSubClass(keyColumn) does not respect keyColumn
body: <p>I'm using Fluent-NHibernate and attempting to persist an object hierarchy using the table per subclass method:</p>
  
  <pre><code>public class AbstractProduct
  {
      public int ProductId { get; set; }
      public string Name { get; set; }
  }
  
  public class SingleProduct : AbstractProduct
  {
      public int SingleProductId { get; set; }
      public string SomeField { get; set; }
  }
  </code></pre>
  
  <p>when saving an object</p>
  
  <pre><code>        var singleProduct = new SingleProduct();
          session.SaveOrUpdate(singleProduct);
  </code></pre>
  
  <p>I get this error:</p>
  
  <blockquote>
    <p>NHibernate.Exceptions.GenericADOException: could not insert: [FluentNHibernateSubClassTest.SingleProduct#3][SQL: INSERT INTO SingleProductData (Field1, AbstractProduct_id) VALUES (?, ?)] ---> System.Data.SqlClient.SqlException: Invalid column name 'AbstractProduct_id'.</p>
  </blockquote>
  
  <p>despite having the following overrides:</p>
  
  <pre><code>public class AbstractProductOverrides : IAutoMappingOverride&lt;AbstractProduct&gt;
  {
      public void Override(AutoMapping&lt;AbstractProduct&gt; mapping)
      {
          mapping.Id(x =&gt; x.ProductId).Column("ProductId");
          //this mapping provided to illustrate the overrides are picked up
          mapping.Table("ProductsData");
          mapping.JoinedSubClass&lt;SingleProduct&gt;("ProductId");//ignored??
      }
  }
  
  public class SingleProductOverrides : IAutoMappingOverride&lt;SingleProduct&gt;
  {
      public void Override(AutoMapping&lt;SingleProduct&gt; mapping)
      {
          mapping.Id(x =&gt; x.SingleProductId);
          mapping.Table("SingleProductData");
          mapping.Map(x =&gt; x.SomeField).Column("Field1");
      }
  }
  </code></pre>
  
  <p>It doesn't appear to matter what column name I supply to <code>JoinedSubClass</code> it ignores it and uses <code>AbstractProduct_id</code> instead.</p>
  
  <p>How can I tell nhibernate the key column is <code>ProductId</code> and not <code>AbstractProduct_id</code>?</p>
  
  <p>I have a test project demonstrating the issue available <a href="http://wallaceturner.com/get/FluentNHibernateSubClassTest.zip" rel="nofollow">here</a> (you need to create the db)</p>
  
  <p><strong>UPDATE</strong>
  I've got around this by providing the following convention:</p>
  
  <pre><code>public class JoinedSubclassConvention : IJoinedSubclassConvention
  {
      public void Apply(IJoinedSubclassInstance instance)
      {
          if (instance.EntityType == typeof(SingleProduct))
              instance.Key.Column(("ProductId"));
      }
  }
  </code></pre>
  
  <p>which works but feels like its the wrong way or a hack. </p>