Мне нужно изменить SqlString NHibernate перед его выполнением в базе данных.В частности, мне нужно добавить предложение WHERE в инструкции SELECT / UPDATE / DELETE.Предложение WHERE может присутствовать или не присутствовать, что означает, что мне, возможно, придется либо изменить его, либо добавить другую часть.Для этого я создал перехватчик:
public class SimpleInterceptor: EmptyInterceptor, IInterceptor
{
SqlString IInterceptor.OnPrepareStatement(SqlString sqlString)
{
if (!shouldQueryBeParsed(sqlString))
{
return sqlString;
}
//Add WHERE clause.
return modifiedSqlString;
}
private bool shouldQueryBeParsed(SqlString sqlString)
{
return !sqlString.StartsWithCaseInsensitive("INSERT");
}
}
и зарегистрировал его в NHibernate:
configuration.SetInterceptor(new SimpleInterceptor());
Единственный соответствующий поток, который я нашел, это Изменение SQL в NHibernate но это не похоже на работу с NHibernate 5.2.3, который я использую.
Я был бы очень признателен за Вашу помощь, поскольку это препятствие для меня.