Mam klasę odwzorowaną w płynny nhibernate, ale chcę, aby jedna z właściwości klas została zignorowana przez mapowanie.Jak powiedzieć Fluent NHibernate, aby nie mapować właściwości klasy
z klasą i mapowanie poniżej otrzymuję ten błąd:
następujące rodzaje nie mogą być używane jako proxy: iMasterengine.Data.Model.Calendar: Metoda get_HasEvents powinien być wirtualny
//my class
public class Calendar : IEntity {
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual string SiteId { get; set; }
public virtual IList<CalendarEvent> Events { get; set; }
//ignore this property
public bool HasEvents { get { return Events.Count > 0; } }
}
//my mapping
public class CalendarMap : ClassMap<Calendar> {
public CalendarMap() {
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.SiteId);
HasMany(x => x.Events).Inverse();
//what do I put here to tell nhibernate
//to ignore my HasEvents property?
}
}
Gdzie należy umieścić tę linię? Pomyślałem, że przejdzie do konstruktora CalendarMap, ale nie widzę tam instancji mapy. – ddc0660
Należy go dodać podczas tworzenia konfiguracji. Zobacz ten link [http://wiki.fluentnhibernate.org/Auto_mapping#Ignoring_properties](http://wiki.fluentnhibernate.org/Auto_mapping#Ignoring_properties) – Rajeesh
IgnoreProperty() służy tylko do * automatycznego mapowania *, jeśli sam określasz swoje mapowania (tzn. przy użyciu mapy klas), to nie ma znaczenia. Plakat zawiera mapę klasy i nie powiedział nic o automatyzacji, więc nie widzę, jakie ma to znaczenie. – UpTheCreek