Свободное владение nhibernate: проблема в предложении where - PullRequest
0 голосов
/ 02 мая 2009

Я использую свободный nhibernate.

Я написал кусок кода, как,

var data = session.CreateCriteria(typeof(CustomerNameValueList))
                        .Add(Expression.Eq("CustomerId","3"))
                        .List<CustomerNameValueList>();

но запрос, сгенерированный nhibernate, выглядит как

select column1,column2,column3 from table where CustomerId=?

проблема с "customerId =?" ожидается: CustomerId = 3 "

почему customerId =? а не customerId = 3

пожалуйста, помогите мне.

1 Ответ

2 голосов
/ 25 февраля 2010

В этом запросе нет ничего плохого. '?' в журнале будет подставлено строковое значение «3». Если ваш тип столбца на самом деле int, у вас может быть проблема здесь. Параметризация запроса - это то, что вы хотите защитить от атак SQL-инъекций. Если сгенерированный запрос имеет CustomerId = '3', как и ожидалось, а '3' получено из текстового поля на веб-странице, то можно будет добавить больше SQL, например '3' DELETE FROM MyUserTable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...