2010-12-08 5 views
0

Meine Suche wird so etwas wie:NHibernate: Wie die Daten aus IQuery.List() mithilfe von Feldname abgerufen werden?

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(); 

Dies wird die Kundennamen und Produktnamen zurück. Aber was ich tun möchte, ist so etwas wie:

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

Könnte jemand geben Sie mir eine Hilfe, wie ich das machen kann?

+0

Bitte [verwenden Sie keine Signaturen oder Taglines] (http://stackoverflow.com/faq#signatures) in Ihren Posts. – meagar

Antwort

4

Sie könnten einen Transformator Hashtable gelten:

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"]; 

Bitte beachten Sie, dass ich Aliase zu Ihrer ursprünglichen Abfrage hinzugefügt die AliasToEntityMap arbeiten zu machen.

+0

danke! Es klappt. – TMS

Verwandte Themen