2010-09-01 17 views
5

我只讀了現有數據庫中的視圖,並且希望通過FHN獲取它們。我嘗試它映射方式如下:如何在沒有唯一標識列的情況下使用Fluent Nhibernate映射視圖

public class HhstMap : ClassMap<Hhst> 
{ 
    public HhstMap() 
    { 
     Table("HHST"); 

     ReadOnly(); 

     Id(); 

     Map(x => x.Hkz); 
     Map(x => x.Kapitel); 
     Map(x => x.Titel); 
     Map(x => x.Apl); 
     Map(x => x.Hhpz); 
    } 
} 

,但我得到了一個錯誤: 無法執行查詢 [選擇this_.id爲id3_0_,this_.Hkz爲Hkz3_0_,this_.Kapitel爲Kapitel3_0_,this_.Titel作爲Titel3_0_,this_.Apl作爲Apl3_0_,this_.Hhpz作爲Hhpz3_0_從HHST this_]

這是好的,因爲沒有ID列,但我怎麼能做與沒有ID的流暢映射?

回答

7

您可以檢索記錄作爲值對象(非管理實體)而不是實體。

「14.1.5返回非管理實體 有可能的IResultTransformer適用於原生SQL查詢允許其返回不受管理的實體

sess.CreateSQLQuery("SELECT NAME, BIRTHDATE FROM CATS") 
    .SetResultTransformer(Transformers.AliasToBean(typeof(CatDTO))) 

這個查詢指定:。 的SQL查詢字符串 結果變壓器

上面的查詢將返回已實例化和注入的NAMEBIRTHNAME值到其肺心病CatDTO列表響應屬性或字段。 「

+0

我應該在我的映射中使用compositeid用你的解決方案? – blindmeis 2010-11-22 11:36:43

相關問題