Преобразовать унаследованный объект NHibernate в другой объект, который наследуется от той же базы - PullRequest
3 голосов
/ 20 февраля 2011

У меня есть следующие NHibernate-объекты:

Лицо наследует от Контакта Компания наследует от Контакта

Есть три таблицы: Контакт, Персона, Компания. Каждая таблица имеет идентификатор столбца типа Guid.

Теперь я ищу самый простой способ преобразования Объекта Человека в Объект Компании. Конкретно, запись в контакте должна остаться, и запись в личном виде должна быть удалена, и вместо этого должна быть создана новая запись в компании, в которую я записываю некоторые значения.

Ответы [ 2 ]

2 голосов
/ 20 февраля 2011

Создайте конструктор в компании, который принимает 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();
0 голосов
/ 22 февраля 2011

Я бы посоветовал вам взглянуть на логику дискриминатора nhibernates и посмотреть, хотите ли вы это использовать.дайте мне знать, если это сработает для вас .. маленький гугл должен помочь .. чувствуя себя немного ленивым ночью, чтобы сидеть и объяснять, как это работает.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...