Не уверен, как сделать свойство объекта с помощью Fluent NHibernate из пользовательского запроса - PullRequest
0 голосов
/ 03 февраля 2011

Я пытаюсь отобразить следующую структуру:

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.ActivationDate фактически заполнен (select top 1 HistoryDate from History where ContentID = {tagid} && Type = 'Activated' order by 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);
}

Я не уверен, как сопоставить Tag.ActivationTop

В основном ищу:

SELECT tag.Id,
       (select top 1 HistoryDate from History 
               where ContentID = tag.Id 
                AND Status = 'Activated' 
        order by HistoryDate desc) As ActivatedDate
FROM Tags tag

1 Ответ

0 голосов
/ 03 февраля 2011

Закончено:

  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)"));
...