将继承自NHibernate对象转换为继承自相同基类的其他对象

3

我有以下的NHibernate对象:

Person继承自Contact Company继承自Contact

有三个表:Contact,Person和Company。 每个表都有一个类型为Guid的Id列。

现在,我正在寻找将Person对象转换为Company对象最简单的方法。具体来说,联系人中的记录应该保留,Person中的记录应该被删除,并且应该创建一个新的Company记录,在其中写入一些值。

2个回答

2
在 Company 上创建一个构造函数,接受一个 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
我建议你看一下NHibernate的鉴别器逻辑,看看那是否是你想要使用的。如果这对你有帮助,请告诉我。通过一些谷歌搜索应该可以找到答案。晚上有点懒得坐下来解释它是如何工作的。
谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接