【问题标题】:Convert inherited NHibernate-Object to another Objects which inherits from the same base将继承的 NHibernate-Object 转换为从同一基础继承的另一个对象
【发布时间】:2011-06-30 18:45:35
【问题描述】:

我有闲置的 NHibernate-Objects:

Person 继承自 Contact 公司继承自 Contact

共有三个表:Contact、Person、Company。 每个表都有一个 Guid 类型的列 ID。

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

【问题讨论】:

    标签: c# nhibernate inheritance type-conversion


    【解决方案1】:

    在 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();
    

    【讨论】:

      【解决方案2】:

      我建议您查看 nhibernates 鉴别器逻辑,看看这是否是您想要使用的。让我知道这是否适合您.. 一个小小的谷歌应该会有所帮助.. 晚上坐下来解释它的工作原理有点懒惰。

      谢谢,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 2011-03-03
        • 1970-01-01
        • 2011-04-24
        相关资源
        最近更新 更多