如何在nhibernate继承中进行向下转换

How to do downcasting in nhibernate inheritance

我有两个 classes ManagerEmployee,以及数据库中的两个表。 经理class继承了员工class。我想 一名员工转变为经理。我有什么办法可以在 nhibernate 中做到这一点?

public class Employee
{
    public virtual string Name { get; set; }
}

public class Manager : Employee
{
    public virtual string CabinNumber { get; set; }
}

我想将 ID 为 employeeId 的员工转换为经理并将其保存在数据库中:

var employee = Repository.Get<DomainModel.Models.Sadhak>(employeeId);
DomainModel.Models.Manager manager = (DomainModel.Models.Manager) employee;
manager.CabinNumber = "A65";
session.Delete(employee);
session.SaveOrUpdate(manager);

在 NHibernate 中无法做到这一点,它假定一旦您创建了一个实体,它就始终是该类型。