Сейчас я не могу это проверить, но, думаю, проблема в том, что вместо передачи дерева выражений вы передаете делегат.Попробуйте это:
T Get(Expression<Func<T, bool>> selectQuery)
{
using (var session = SessionFactory.Session.OpenSession())
{
return (from x in session.Query<T>() where selectQuery(x) select x).FirstOrDefault();
}
}
(надеюсь, он скомпилируется без ошибок, компилятор не будет под рукой)