Моделирование отношений «многие ко многим» в коде - PullRequest
1 голос
/ 07 января 2012

Использование C # 4.0

Исходя из моего вопроса Как настроить nHibernate для сопоставления многие-многие? Я запутался, и это может быть из-за неправильного дизайна моего класса.

Рынок моделирует финансовый рынок. Брокер моделирует финансового брокера, который может взаимодействовать со многими рынками. Рынок может взаимодействовать со многими брокерами. См. Broker и Market классы ниже.

public class Market
{
    public int Id { get; set; }
    public string Symbol { get; set; }
    public string Description { get; set; }
}

public class Broker
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsDefault { get; set; }
    public bool IsActive { get; set; }
    public IList<Account> Accounts { get; set; }
}

У меня есть дополнительный атрибут в отношении многие ко многим, называемый MinIncrement, который уникален для комбинации Market и Broker.

Какой лучший способ смоделировать это? Нужно ли создавать третий класс или я могу поместить MinIncrement в один из моих существующих классов? Должен ли я создать третий класс и наследовать от одного из моих существующих? Я не совсем уверен, как смоделировать это OO способом.

В моей базе данных это просто. У меня есть три таблицы:

  • брокеры (PK: brokerId)
  • рынков (PK: marketId)
  • brokerMarkets (PK: brokerId, marketId), здесь указывается столбец MinIncrement

1 Ответ

1 голос
/ 09 января 2012

Да, я бы создал третье лицо:

public class BrokerMarketRelationship
{
    public int Id { get; set; }
    public Broker Broker { get; set; }
    public Market Market { get; set; }
    public int MinIncrement { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...