Как сказать Fluent NHibernate не отображать свойство класса - PullRequest
26 голосов
/ 25 мая 2009

У меня есть класс, который отображается в беглом nhibernate, но я хочу, чтобы одно из свойств классов было проигнорировано отображением.

С классом и отображением ниже я получаю эту ошибку:

Следующие типы не могут использоваться в качестве прокси: iMasterengine.Data.Model.Calendar: метод get_HasEvents должен быть виртуальным

//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?
    }
}

Ответы [ 2 ]

26 голосов
/ 07 мая 2010

Вы можете просто сделать HasEvents виртуальным в классе:

public virtual bool HasEvents { get { return Events.Count > 0; } }

Вам не нужно ничего добавлять в сопоставления.

Вам нужно только свободно говорить, чтобы записать свойство, если вы используете Auto Mapping, а я не думаю, что это так.

15 голосов
/ 26 мая 2009
map.IgnoreProperty(p => p.What);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...