NHibernet large data retrieval in single query
===

I am currently using <b>NHibernate</b> to read a block of <b>50k rows</b>. It takes almost <b>20 minutes</b>.
Data which is to be read is prepared by joining more than <i>5 tables</i> in SQLSERVER 2005.
My main concern is NHibernate prepares a <b>new query for each row</b> retrieval, which is quite time consuming.<br/><br/>
I know it's necessary as NHibernate has to map each row to an object, but this approach is useless where reading is main concern.
<br/><br/>
I cannot use Stateless sesstion as I am using collections to store data
<br/><br/>
I also need to apply some filter through parameters. I have also implemented Stored Procedure, but somehow it didn't help.
<br/><br/>
Is there any other way to handle large collection of data. 