Как сопоставить несколько классов одной таблице через NHibernate? - PullRequest
2 голосов
/ 21 февраля 2009

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

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

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; }
}

Таблица Employee содержит следующие столбцы: EmployeeId, FirstName, LastName и различные контактные данные.

Ответы [ 2 ]

3 голосов
/ 21 февраля 2009

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

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

1 голос
/ 21 февраля 2009

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

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

...