2010-11-05 190 views
1

如何使用NHibernate編寫HQL查詢。我必須包括哪些命名空間,以便一切正常。其實我有兩張表格Ticket和Trip,我希望在Trip中沒有Ticket中相應條目的記錄。門票中有一個tid字段,提供Trip ID。任何人都可以從開始解釋我將如何編寫NHibernate HQL查詢?NHibernate HQL查詢

+0

你試過在谷歌搜索這個嗎? – 2010-11-05 17:52:41

+0

...或閱讀文檔... – 2010-11-05 19:04:02

回答

3

您不需要任何特殊的名稱空間來使用HQL。只需創建一個簡單的NHibernate項目,即可開始編寫HQL。

下面是新的NHibernate 3.0 Cookbook的一個示例,您還應該檢查Nhibernate in Action書籍,其中有更詳細的HQL示例。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NHibernate.Cfg; 
using NHibernate; 

namespace ExecutableHQL 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
     var nhConfig = new Configuration().Configure(); 
     var sessionFactory = nhConfig.BuildSessionFactory(); 

     using (var session = sessionFactory.OpenSession()) 
     { 
     using (var tx = session.BeginTransaction()) 
     { 
      int count = (int) session.CreateQuery("select count(*) from Trip").UniqueResult(); 

      tx.Commit(); 
     } 
     } 
    } 
    } 
} 
0
[HttpGet] 
    public int GetCount() 
    { 
     var myQuery = session.CreateQuery(@" 
     select COUNT(*) from Table as t where 
     t.Id = :Id"); 
     myQuery.SetParameter("Id", this.Id); 
     int count = Convert.ToInt32(myQuery.UniqueResult()); 
     return count; 
    }