Выражения Linq не сериализуются.
С другой стороны, HQL - это просто строка, похожая на SQL, поэтому она будет работать.
Но вы должны по-настоящему доверять своему пользователю, поскольку ничто не мешает ему набрать "DELETE TheMostImportantEntity WHERE 1 = 1".