2009-06-09 6 views
0

私は 'FirstName'と 'LastName'カラムを持つ 'Customer'テーブルを持っています。テキストボックスのテキストに応じて、 'FirstName'、 'LastName'、および 'FirstName + LastName'の後に 'Customer'テーブルの検索を実行する必要があります。 NHibernateまたはSQLクエリを使用してこれを実装するための最良の方法/クエリは何ですか?あなたが顧客と呼ばれるオブジェクトを持っていることをpresumming、それが正しくマッピングされているということです。もちろん、NHibernate find

var session = SessionFactory.OpenSession; 
var transaction = session.BeginTransaction; 
var query = session.CreateQuery("FROM Customer c WHERE c.LastName = :LastName And c.FirstName = :FirstName"); 
query.SetString("FirstName", FirstName); 
query.SetString("LastName", LastName); 
var returnList = _Query.List(Of Customer)(); 
transaction.Commit(); 

シンプルになりHQLを使用して

+0

から

  • オープンセッションあなたは私に例を示すことができますか?あなたのように誰もがとても賢いわけではありません –

  • 答えて

    0

    また、QueryOverを使用することもできます。また、安全なタイプです:

    IList<Customer> customers = 
    session.QueryOver<Customer>() 
        .Where(c => c.LastName == "Foo" && c.FirstName == "Bar") 
        .List(); 
    

    要件:

    • Customerエンティティクラス(マッピングされた)DB
    0

    var query = this.CreateQuery(@"select c.LastName,c.FirstName from Customer as c where c.LastName = :LastName And c.FirstName = :FirstName").SetResultTransformer(Transformers.AliasToBean<Customer>()); 
     
    query.SetParameter("FirstName", FirstName); 
     
    query.SetParameter("LastName", LastName); 
     
    var result = query.List<Customer>().ToList(); 
     
    return result;