私たちのエンティティには、共通のプロパティのグループがあります。マッピングの繰り返しを減らすために、ID と共通プロパティをマッピングする基本 ClassMap を作成しました。各エンティティの ClassMap について、ベースをサブクラス化するだけでうまく機能します。新しいプロジェクトでは、NH に DB スキーマの生成も任せています。問題は、列の順序が、基本 ClassMap のプロパティが最初に表示され、その後にサブクラスにマップされたものが続くということです。このビルドの要件は、列が特定の順序で表示されることです。
これを回避するために、次のことを行いました。
public class BaseMap<T> : ClassMap<T> where T : Entity
{
public BaseMap()
{
Id(x => x.Id);
MapEntity();
Map(x => x.CommonProperty1);
Map(x => x.CommonProperty2);
Map(x => x.CommonProperty3);
}
protected virtual void MapEntity()
{
}
}
public class SomeEntityMap : BaseMap<SomeEntity>
{
public SomeEntity()
{
base.MapEntity();
}
protected override void MapEntity()
{
Map(x => x.SomeEntityProperty1);
Map(x => x.SomeEntityProperty2);
Map(x => x.SomeEntityProperty3);
}
}
これは機能しますが、ハックのように感じます。ハッキング要因以外に、問題になる可能性があるものはありますか?