将继承的NHibernate-Object转换为另一个继承自同一基类的对象

时间:2011-02-20 15:14:23

标签: c# nhibernate inheritance type-conversion

我已经厌倦了NHibernate-Objects:

Person继承自Contact 公司继承自联系

有三个表:联系人,人,公司。 每个表都有一个列标识,其类型为Guid。

现在,我正在寻找将人的对象转换为公司对象的最简单方法。应该保留联系人记录的保密性,并删除记录,然后在我写下一些值的地方创建一个新的公司记录。

2 个答案:

答案 0 :(得分:2)

在公司上创建一个接受Person的构造函数并映射属性:

public Company(Person person)
{
    // map properties from person to company
}

用法:

var company = new Company(person);
// set additional properties
session.Delete(person);
session.Save(company);
session.Flush();

答案 1 :(得分:-1)

我建议你看看nhibernates鉴别器逻辑,看看你是否想要使用它。让我知道,如果这对你有用..一个小谷歌应该帮助...在晚上感觉有点懒,坐下来解释它的工作原理。

谢谢,