NHibernate Mapping: как отобразить строки на основе значения поля - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть таблица [ContactNumbers], как указано ниже:

ID (PK) | PersonID (FK) | NumberType | Number
========|===============|============|=======

и классы, определенные как:

public class Person
{
    ContactNumber homePhone;
    ContactNumber workPhone;
}

public class ContactNumber
{
    string Number;
}

Как бы я определил мои отображения HBM для класса Person и ContactNumber, чтобы Person.homePhone отображался в соответствующую строку в таблице [ContactNumbers] с наблюдаемым FK, а [ContactNumbers].[NumberType] равнялся "HOME"? ([NumberType] равно "WORK" для Person.workPhone.)

Уже потратил много времени на изучение этого вопроса, и я пока не могу найти решение.

1 Ответ

0 голосов
/ 15 сентября 2010

Вы не можете отобразить один объект / экземпляр на несколько строк и наоборот.

Что вы можете сделать, это сделать:

class Person
{
  public IList<ContactNumber> ContactNumbers { get; set; }
}

А затем сопоставьте класс ContactNumbers как ассоциацию коллекция / только для многих. Столбец PersonID указан как внешний ключ, поэтому я предполагаю, что есть таблица person?

...