2012-02-29 17 views
2

私はこのように私のプロジェクトNHibernateのに使用される:挿入、削除、保存:どのようにNHibernateでテーブルからデータを取得する?

public class DBHelper 
    { 
     private static ISessionFactory sessions; 

     public static void Configure() 
     {    
      sessions = new Configuration().Configure().AddClass(typeof(Clients)).BuildSessionFactory(); 
      //ISessionFactory factory = Fluently.Configure().Mappings(m => m.FluentMappings.AddFromAssemblyOf<Clients>()).Database(MsSqlConfiguration.MsSql2005.ConnectionString(c => c.FromConnectionStringWithKey(DBConnection.GetConnectionString())).BuildSessionFactory(); 
     } 

     public static void Insert(Clients pb) 
     {    
      using (ISession session = sessions.OpenSession())   
      using (ITransaction tx = session.BeginTransaction()) 
      {     
       session.Save(pb);     
       tx.Commit(); 
      } 
     } 

     public static void UpdateContact(Clients pb) 
     { 
      using (ISession session = sessions.OpenSession()) 
      using (ITransaction tx = session.BeginTransaction()) 
      { 
       session.Update(pb); 
       tx.Commit(); 
      } 
     } 

     public static void DeleteContact(Clients pb) 
     { 
      using (ISession session = sessions.OpenSession()) 
      using (ITransaction tx = session.BeginTransaction()) 
      { 
       session.Delete(pb); 
       tx.Commit(); 
      } 
     } 
    } 

私は木の簡単な方法があります。 は、今私はDBのテーブルからすべてのデータを取得する必要がありますか アナログのようないくつかのデータは、ID =クライアントから選択* '...'

答えて

9

をあなたのオプションは次のとおりです。

個人的に、私は本当にQueryOverのAPIのように:あなただけのIDでエンティティを取得する必要がある場合は

var clients = session.QueryOver<Clients>().Where(x => x.Name == "Foobar").List(); 

、あなたがGet or Load

を使用することができます
var client = session.Get<Clients>(5); 

あなたは確かに多くの情報を見つけるでしょうNHibernateのチュートリアルを検索します。私はSummer Of NHibernate screencastsについて良いことを聞いたことがありますが、個人的には見たことがありません。

+0

最初のリンク「Criteria Queries」はもう機能しません。 –

+0

リンクを更新しました。 –

関連する問題