Sto tentando di mappare una raccolta di oggetti valore dove questi contengono altri oggetti valore ma ottengono l'eccezione sottostante.Mappatura di un componente all'interno di una raccolta di componenti
NHibernate eccezione:
----> NHibernate.PropertyNotFoundException : Could not find a getter for property '_timeAtAddress' in class 'CustomerAddress'
Domain:
public class CustomerAddress
{
private TimePeriod _timeAtAddress;
protected CustomerAddress() { }
public CustomerAddress(TimePeriod timeAtAddress)
{
_timeAtAddress = timeAtAddress;
}
public TimePeriod TimeAtAddress { get { return _timeAtAddress; } }
}
public class TimePeriod
{
private readonly int _months;
private readonly int _years;
protected TimePeriod() { }
public TimePeriod(int months, int years)
{
_months = months;
_years = years;
}
public int Months { get { return _months; } }
public int Years { get { return _years; } }
}
NHibernate mappatura:
contact.HasMany<CustomerAddress>(Reveal.Member<Contact>("_customerAddresses"))
.Schema(...)
.Table(...)
.KeyColumn(...)
.AsBag()
.Not.LazyLoad()
.Component(address =>
{
.
.
.
address.Component(Reveal.Member<CustomerAddress, TimePeriod>("_timeAtAddress"), timeAtAddress =>
{
timeAtAddress.Map(Reveal.Member<TimePeriod>("_years")).Column("TIME_YEARS");
timeAtAddress.Map(Reveal.Member<TimePeriod>("_months")).Column("TIME_MONTHS");
});
});
Aveva un q guarda attentamente Access ma non riesci a capire dove metterlo per i componenti. Puoi aiutare?
Perché stai aggiungendo il componente nella relazione HasMany? Hai provato a chiamare solo un riferimento a un indirizzo? – Najera
Non so se seguo, cosa cambieresti lì? –
Supponendo che non sia necessario utilizzare il metodo 'Component' nella relazione' HasMany', supponiamo solo di dover aggiungere solo il riferimento all'indirizzo. Basta fare un tentativo. – Najera