Я в процессе адаптации Fluent NHibernate к нашему существующему унаследованному приложению и пытаюсь определить, как использовать ClassMap и SubclassMap для показанной иерархии сущностей.
// BaseObject contains database columns common to every table
public class BaseObject
{
// does NOT contain database id column
public string CommonDbCol1 { get; set; }
public string CommonDbCol2 { get; set; }
// ...
}
public class Entity1 : BaseObject
{
public int Entity1Id { get; set; }
// other Entity1 properties
}
public class Entity2 : BaseObject
{
public int Entity2Id { get; set; }
// other Entity2 properties
}
Столбцы идентификации для Entity1 и Entity2 имеют уникальные имена для каждой таблицы. BaseObject содержит столбцы, которые являются общими для всех наших объектов. Я не использую AutoMapping, и подумал, что мог бы использовать ClassMap на BaseObject, а затем использовать SubclassMap на каждом объекте, как это:
public class Entity1Map : SubclassMap<Entity1>
{
public Entity1Map()
{
Id(x => x.Entity1Id);
// ...
}
}
Проблема в том, что Id () не определен для SubclassMap. Итак, как мне указать в каждом Entity1Map, Entity2Map, ... (у нас есть более 100 классов сущностей, все унаследованных от BaseObject), что такое идентификатор конкретной сущности?
Заранее благодарим вас за понимание!