2010-04-16 64 views
0

我已經映射.hmb.xml中的實體併爲類中的所有實體定義屬性。Nhibernate - 刪除一些簡單的HQL

我有一些基本的成就,並獲得使用下面的代碼的所有記錄。

public List<DevelopmentStep> getDevelopmentSteps() 
    { 
     List<DevelopmentStep> developmentStep; 
     developmentStep = Repository.FindAll<DevelopmentStep>(new OrderBy("Id", Order.Asc)); 
     return developmentStep; 
    } 

我從網籤,我們可以寫HQL,現在的問題是如何執行這個HQL如..

string hql = "From DevelopmentSteps d inner join table2 t2 d.id=t2.Id where d.id=IDValue"; 

我需要什麼額外的類或其他東西添加到執行此一種HQL?

請幫我----由於

+0

獲取會話是基本的NHibernate的,你不能沒有會話做任何事情。看一下手冊的第一章:「快速入門」,例如「與貓玩耍」:http://nhforge.org/doc/nh/en/index.html#quickstart-playingwithcats – 2010-04-19 07:38:47

回答

1
  • 要編寫動態查詢,我建議使用標準的API。這是動態的,因爲你有幾個不同類型的單個查詢,你也想動態地設置排序。
  • 查詢總是面向對象的。您不需要通過外鍵連接,只需瀏覽類模型即可。查詢中也沒有「表」,但實體。
  • 通過ID獲取(單個)實例應始終使用session.Get(或session.Load)完成。只有NHibernate才能直接從緩存中取出它,而不需要數據庫往返,它已經被加載了。

例如:

​​
+0

Criteria API,這是我必須添加的.dll文件嗎?什麼會議在這裏,需要通過這裏? – 2010-04-16 14:05:42

+0

該條件包含在Nhibernate.dll中。看看手冊。 http://nhforge.org/doc/nh/en/index.html#manipulatingdata-criteria – 2010-04-16 14:16:17

+0

你給我提供了非常好的鏈接,我面臨問題,如何創建會話對象來獲取CreateCriteria方法。我無法進入我的課,你可以告訴我該怎麼做得到session.CreateCriteria().......謝謝 – 2010-04-19 07:16:28