nHibnernate Linq supports part of the DefaultIfEmpty
It seems the nHibernate Linq is the best support for nHibernate
First version Unit Test for Repository
add back Repository.cs