不确定如何使用自定义查询中的Fluent NHibernate在对象上创建属性

不确定如何使用自定义查询中的Fluent NHibernate在对象上创建属性,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我正在尝试映射以下结构: public class Tag { public Guid Id {get;set;} public DateTime ActivatedDate {get;set;} } public class History { public Guid Id {get;set;} public TypeEnum Type {get;set;} public Guid ContentID {get;set;} public DateTime

我正在尝试映射以下结构:

public class Tag {
   public Guid Id {get;set;}
   public DateTime ActivatedDate {get;set;}
}

public class History {
   public Guid Id {get;set;}
   public TypeEnum Type {get;set;}
   public Guid ContentID {get;set;}
   public DateTime HistoryDate {get;set;}
}
Tag.ActivatedDate实际上由从历史记录中选择前1名HistoryDate填充,其中ContentID={tagid}&&Type='Activated'顺序由HistoryDate desc

我真的不知道如何用Fluent NHibernate映射这个

我的映射是:

public TagMapping() {
   Table("Tags");
   Id(x => x.Id)     
}

public HistoryMapping() {
   Table("History");
   Id(x => x.Id);
   Map(x => x.Type).CustomeType<TypeEnum>();
   Map(x => x.ContentID);
   Map(x => x.HistoryDate);
}
最后做了:

  Map(x => x.ActivatedDate)
                .ReadOnly()
                .Formula(
                    string.Format(
                        "(select top 1 h.HistoryDate from History h where h.ContentID = Id AND h.Status = 'Activated' order by h.HistoryDate desc)"));

你的意思是在中的ActivateDate吗?我不知道如何映射标记。ActivateDate?执行此操作后,我决定执行一些反规范化操作,并将ActivateDate列添加到我的标记表中。
  Map(x => x.ActivatedDate)
                .ReadOnly()
                .Formula(
                    string.Format(
                        "(select top 1 h.HistoryDate from History h where h.ContentID = Id AND h.Status = 'Activated' order by h.HistoryDate desc)"));