Добавьте предложение WHERE в SqlString NHibernate - PullRequest
0 голосов
/ 16 февраля 2019

Мне нужно изменить 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, который я использую.

Я был бы очень признателен за Вашу помощь, поскольку это препятствие для меня.

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