2010-12-08 12 views
0

私のクエリは次のようになります:NHibernate:フィールド名を使用してIQuery.List()からデータを取得する方法?

string query = " select a.CustomerName , b.ProductName from Customer as a join a.Product as b " 

IQuery query = applicationSession.CreateQuery(query); 
IList listResult = query.List(); 

これは顧客名と製品名を返します。 しかし、私がしたいことは次のようなものです:

string customerName = listResult[0]["CustomerName"]; 
string productName = listResult[0]["ProductName"]; 

誰も私にこれをどうすればできるのか教えてもらえますか?

+0

あなたの投稿に[署名やタグラインを使用しない](http://stackoverflow.com/faq#signatures)をお願いします。 – meagar

答えて

4

あなたはハッシュテーブルに変圧器を適用することができます:

string query = "select a.CustomerName as CustomerName, b.ProductName as ProductName from Customer as a join a.Product as b" 

IQuery query = applicationSession.CreateQuery(query); 
var listResult = query.SetResultTransformer(NHibernate.Transform.Transformers.AliasToEntityMap).List<Hashtable>(); 


string customerName = (string)listResult[0]["CustomerName"]; 
string productName = (string)listResult[0]["ProductName"]; 

私はAliasToEntityMapの作業をするためにあなたの元のクエリにエイリアスを追加したことに注意してください。

+0

ありがとう!できます。 – TMS

関連する問題