Как с помощью NHibernate отобразить несколько классов в одну таблицу?

У меня есть класс Employee со свойством Name класса Name и свойством Contact типа Contact. Класс Name имеет два строковых свойства: FirstName и LastName, а класс Contact имеет такие свойства, как PhoneNumber и EmailAddress.

Все данные находятся в одной таблице и предполагают, что их нельзя изменить. Как будут выглядеть мои карты, чтобы я мог загрузить сотрудника на основе идентификатора и заполнить свойства «Контакт» и «Имя» соответствующими значениями? Или это вообще возможно?

public class Employee
{       
    //Constructor ommitted.

    public virtual Name Name { get; set; }      
    public virtual Contact ContactInfo { get; set; }
}

public class Name
{       
    // Constructor omitted.

    public string FirstName { get; set; }
    public string LastName { get; set; }
}

В таблице сотрудников есть следующие столбцы: EmployeeId, FirstName, LastName, а также различная контактная информация.


person Community    schedule 20.02.2009    source источник


Ответы (2)


использовать сопоставление компонентов ... подробнее здесь:

http://www.hibernate.org/hib_docs/nhibernate/html/components.html

person StackUnderflow    schedule 20.02.2009

Думаю, я нашел то, что ищу, на http://wiki.fluentnhibernate.org/show/StandardMappingComponents и http://blog.jagregory.com/2009/01/19/fluent-nhibernate-auto-mapping-components/

Спасибо за ваш вклад!

person Community    schedule 20.02.2009