2010-07-08 2 views
0

Я хочу, чтобы мои пользователи создавали спецификации для выполнения в запросе nhibernate.Linq.Сгенерированные пользователем параметры

Возможно ли это? Я прошу пользователя написать строку запроса (предположим, что HQL), поэтому она будет сериализована, и в combobox пользователь может применить ее к текущим результатам.

+0

Таким образом, пользователь задает запрос, и ваше приложение выполняет его? Существуют ли какие-либо ограничения безопасности, которые вы можете реализовать, помимо ограничения доступа к определенным пользователям? – apollodude217

ответ

1

Выражения Linq не могут быть сериализованы.

С другой стороны, HQL - это просто строка, подобная SQL, так что это сработает.

Но вы должны действительно доверять своему пользователю, так как нет ничего, что помешало бы ему напечатать «DELETE TheMostImportantEntity WHERE 1 = 1».

+0

Да, это правда. Другая проблема заключается в том, что пользователь не знает точного имени свойства класса, поэтому создать выражение запроса не так просто. Я поеду с выпадающим списком предварительно скомпилированных спецификаций, чтобы выбрать между ними, на данный момент. –

Смежные вопросы