NHibernate implementation for Linq's Fetch will only produce outer join. Unfortunately even with its latest version NHibernate 4.0, it doesn't support inner join yet. I found this open source library that is an extension to NHibernate to create inner join.
But it was referencing NHibernate 3.x.
So, I had to do some small changes to make it work with version 4.0
The modified code is here.
To use it, just compile the library, and reference the assembly : NHibernate.Linq.InnerJoinFetch.dll in your code
and before you start your NHibernate session, or any NHibernate initialization, run this code:


NHibernateInnerJoinSupport.Enable() 
And then you can call any of these:
InnerFetch
InnerFetchMany
ThenInnerFetch
ThenInnerFetchMany