Объекты:
public class Person
{
public Person(){}
public virtual long ID { get; set; }
}
public class Employee : Person
{
public Employee(){}
public virtual long ID { get; set; }
public virtual string Appointment { get; set; }
}
Отображения:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.ID)
.GeneratedBy.Identity();
}
}
public class EmployeeMap : SubclassMap<Employee>
{
public EmployeeMap()
{
KeyColumn("ID");
Map(x => x.Appointment)
.Not.Nullable()
.Length(50);
}
}
2 позиции в таблице Персона
1 элемент в таблице сотрудников
(1 в базовом классе, 1 в дочернем классе)
Запрос: var list = Session.CreateQuery("from Person").List<Person>();
Возвращение:
0 | ID = 1
1 | ID = 0, Назначение = "SomeAppointment"