2011-02-02 11 views
0

から流暢NHibernateはを使用してオブジェクトのプロパティを作成する方法がわからない:私は次の構造をマップしようとしていますカスタムクエリ

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は実際に(select top 1 HistoryDate from History where ContentID = {tagid} && Type = 'Activated' order by HistoryDate desc

によって移入された私はFluent NHibernateでこれをどのようにマップするのか本当に分かりません。

私のマッピングは、以下のとおりです。やってしまった

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 
+0

ActivatedDateを意味していますか?「私はnです"Tag.ActivatedTopをどのようにマップするか" – brainimus

答えて

0

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

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.ActivatedTop

は、基本的に探しにマップするかどうかはわかりません

+0

これを実行した後、少し標準化解除を行い、ActivatedDate列をタグテーブルに追加することにしました。 – Rob

関連する問題