У меня есть наследство
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.
Кроме того, у меня есть гораздо больше настроек и соглашений, которые могут как-то повлиять на игнорирование этой конфигурации, но я попробовал это на ясном решении с тем же отрицательным результатом.