流暢な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?
}
}
map.IgnoreProperty(p => p.What);
クラスでHasEvents
virtualを作成できます。
public virtual bool HasEvents { get { return Events.Count > 0; } }
マッピングに何も追加する必要はありません。
自動マッピングを使用している場合は、流暢にプロパティを取得するように指示するだけで済みますが、そうではないと思います。