遺産があります
public abstract class UserEntity : Entity
{
public virtual int Id { get; protected set; }
}
public class Employee : UserEntity
{
public virtual string Email { get; set; }
}
エンティティは、オーバーライドされたメソッド Equals、GetHashCode などの NH クラスの標準です。そして、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");
}
}
しかし、成功しませんでした。
現時点では、NuGet パッケージの最新の FNH である FluentNHibernate 1.2.0.712 を使用しています。また、この構成を無視して何らかの形で影響を与える可能性のある構成と規則がはるかに多くありますが、明確な解決策で試してみましたが、同じ否定的な結果が得られました。