ロックされたスキーマを持つレガシー データベースを扱っています。私が直面している問題は、多くのテーブルが、列の値を持つのではなく、既知/固定/ハードコードされたエンティティ タイプ Id の値をキーオフしていることです。これは、通常の References コンストラクトを使用できないことを意味します。
ENTITY_TYPEID を持つテーブルの場合、次のことができます。
public class EntityMap : ClassMap<Entity>
{
public EntityMap()
{
References(x => x.Type)
.Columns("ENTITY_SECTION","ENTITY_TYPEID");
}
}
これにより、Entity.Type が喜んで取り込まれます。
固定/既知/ハードコードされたタイプのテーブルの場合、ENTITY_TYPE 列の代わりにハードコードされた値にマップする必要があるため、コードをパラフレーズするには:
public class EntityXMap : ClassMap<EntityX>
{
public EntityXMap(int entityType)
{
References(x => x.Type)
.Columns("ENTITY_SECTION", "ENTITY_TYPE = 123" );
}
}
HasMany() には、その場合に使用できる Where() コンストラクトがあります...
ここで同様のことを達成する方法はありますか?