2009-05-02 2 views
0

Я использую беглый nhibernate.Fluent nhibernate: проблема в том, где статья

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

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

но запрос генерируется NHibernate это выглядит

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

проблема с "CUSTOMERID =?" expeted:.. '?' CustomerId = 3"

почему CUSTOMERID = вместо CUSTOMERID = 3

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

+1

Вы просите помогите, но вы не задали вопрос. Что случилось с этим вопросом? Какие результаты вы ожидаете? –

+0

проблема с «customerId =?» expeted: CustomerId = 3 » Почему customerId =? а не customerId = 3 –

+0

Откуда у вас этот запрос? Действительно ли он выполняется против базы данных? –

ответ

2

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

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