У меня есть три класса с именами Broker
, Instrument
и BrokerInstrument
.
using Iesi.Collections.Generic;
public class Broker : ActiveDefaultEntity
{
public virtual string Name { get; set; }
public virtual ISet<BrokerInstrument> BrokerInstruments { get; set; }
}
public class Instrument : Entity
{
public virtual string Name { get; set; }
public virtual string Symbol {get; set;}
public virtual ISet<BrokerInstrument> BrokerInstruments { get; set; }
public virtual bool IsActive { get; set; }
}
public class BrokerInstrument : Entity
{
public virtual Broker Broker { get; set; }
public virtual Instrument Instrument { get; set; }
public virtual decimal MinIncrement { get; set; }
}
Если я создаю три новых объекта (по одному для каждого типа), используя эти классы, как их связать?Например:
Instrument instrument = new Instrument {
Name = "Test Instrument",
Symbol = "Test",
IsActive = true
};
Broker broker = new Broker {
Name = "My Test Broker",
IsActive = true,
IsDefault = false
};
BrokerInstrument brokerInstrument = new BrokerInstrument {
Broker = broker,
Instrument = instrument,
MinIncrement = 0.01M
};
Как instrument
"узнает", что новый brokerInstrument
теперь связан с ним?Если я сейчас запускаю if (instrument.Brokerinstruments == null)
, я получу true
.Нужно ли связывать объекты в объявлении BrokerInstrument
, а затем вернуться назад и добавить его в instrument.BrokerInstruments ISet
?
Если я попытаюсь это сделать: instrument.BrokerInstruments.Add(instrument)
Я получу ошибку, потому что она пуста.Смущенный.Что мне не хватает?Каков наилучший способ для моделирования таких отношений?эти объекты будут сохранены в базе данных с помощью NHibernate.