Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何告诉Fluent NHibernate不要映射类属性_C#_Nhibernate_Fluent Nhibernate - Fatal编程技术网

C# 如何告诉Fluent NHibernate不要映射类属性

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

我有一个在fluent nhibernate中映射的类,但我希望映射忽略其中一个类属性

通过下面的类和映射,我得到了以下错误:

以下类型不能用作代理: iMasterengine.Data.Model.Calendar:方法get\u 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?
    }
}
//我的类
公课日历:开放性{
公共虚拟整数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; } }