Изменить столбец для сопоставления объединенного класса в Fluent NHibernate Automapping - PullRequest
3 голосов
/ 21 июля 2011

У меня есть наследство

public abstract class UserEntity : Entity
{
    public virtual int Id { get; protected set; }
}

public class Employee : UserEntity
{
    public virtual string Email { get; set; }
}

Entity - это стандарт для класса NH, где переопределены методы Equals, GetHashCode и т. Д. И я использую перезапись AutMap .IncludeBase ()

Я получил с Fluent NHibernate Automapping

<class xmlns="urn:nhibernate-mapping-2.2" name="Dto.Entities.UserEntity" table="UserEntities">
    <id name="Id" type="System.Int32">
      <column name="Id" />
      <generator class="identity" />
    </id>
    <joined-subclass name="Dto.Entities.Employee" table="Employees">
      <key foreign-key="FK_Employee_UserEntity">
        <column name="UserEntityId" />
      </key>
      <property name="Email" type="System.String">
        <column name="Email" />
      </property>
    </joined-subclass>
</class>

Я хочу изменить имя ключевого столбца в объединенном подклассе с UserEntityId на EmployeeId

Я пытаюсь

public class UserEntityOverride : IAutoMappingOverride<UserEntity>
{
    public void Override(AutoMapping<UserEntity> mapping)
    {
        mapping.JoinedSubClass<Employee>("EmployeeId");
    }
}

но безуспешно.

Я использую самую последнюю на данный момент FNH из пакета NuGet: FluentNHibernate 1.2.0.712. Кроме того, у меня есть гораздо больше настроек и соглашений, которые могут как-то повлиять на игнорирование этой конфигурации, но я попробовал это на ясном решении с тем же отрицательным результатом.

...