C# 如何告诉Fluent NHibernate不要映射类属性
我有一个在fluent nhibernate中映射的类,但我希望映射忽略其中一个类属性 通过下面的类和映射,我得到了以下错误: 以下类型不能用作代理: iMasterengine.Data.Model.Calendar:方法get\u HasEvents应该是虚拟的C# 如何告诉Fluent NHibernate不要映射类属性,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我有一个在fluent nhibernate中映射的类,但我希望映射忽略其中一个类属性 通过下面的类和映射,我得到了以下错误: 以下类型不能用作代理: iMasterengine.Data.Model.Calendar:方法get\u HasEvents应该是虚拟的 //my class public class Calendar : IEntity { public virtual int Id { get; private set; } public virtual stri
//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?
}
}
//我的类
公课日历:开放性{
公共虚拟整数Id{get;private set;}
公共虚拟字符串名称{get;set;}
公共虚拟字符串SiteId{get;set;}
公共虚拟IList事件{get;set;}
//忽略此属性
public bool HasEvents{get{return Events.Count>0;}
}
//我的地图
公共类日历映射:类映射{
公共日历地图(){
Id(x=>x.Id);
Map(x=>x.Name);
地图(x=>x.SiteId);
HasMany(x=>x.Events);
//我在这里说什么来告诉nhibernate
//忽略我的HasEvents属性?
}
}
您只需在类中使HasEvents
虚拟即可:
public virtual bool HasEvents { get { return Events.Count > 0; } }
您不需要向映射添加任何内容
如果您使用的是自动映射,您只需告诉fluent查找一个属性,我认为您不需要这样做。该将该行放置在哪里?我想它会进入CalendarMap构造器,但我在那里看不到可用的映射实例。它应该添加到您创建配置的地方。请参阅此链接IgnoreProperty()仅用于自动映射如果您自己指定映射(即使用classmap),则这与此无关。海报上有一个类地图,没有提到任何关于自动映射的内容,所以我不知道这有什么关联。我是从谷歌那里看到的,我正在自动映射,所以尽管它可能没有回答这个问题,但它回答了我的问题,我能改变每个用户的基本方式吗,我想让它对一组用户可用,并对一些用户隐藏。在旧版本的NHibernat.e上通过Linq对我来说不起作用
public virtual bool HasEvents { get { return Events.Count > 0; } }