web-dev-qa-db-ja.com

FluentNHibernateにクラスプロパティをマップしないように指示する方法

流暢なnhibernateでマッピングされたクラスがありますが、クラスのプロパティの1つをマッピングで無視したいと思います。

以下のクラスとマッピングでは、次のエラーが発生します。

次のタイプはプロキシとして使用できません:iMasterengine.Data.Model.Calendar:メソッドget_HasEventsはvirtualである必要があります

//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?
    }
}
26
modernzombie
map.IgnoreProperty(p => p.What);
15
Owen

クラスでHasEventsvirtualを作成できます。

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

マッピングに何も追加する必要はありません。

自動マッピングを使用している場合は、流暢にプロパティを取得するように指示するだけで済みますが、そうではないと思います。

26
UpTheCreek