Почему не вызывается Nhibernate Interceptor? - PullRequest
3 голосов
/ 25 августа 2010

Я использовал NHibernate 2.1.2, FluentNhibernate 1.1 и SQLite с настройкой In Memory (для модульного тестирования).

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

Итак, мой вопрос: как я могу узнать, правильно ли настроен мой перехватчик или нет? Могу ли я отладить с помощью регистрации?

У меня проблема с использованием конфигурации в модульном тестировании Visual Studio.

1 Ответ

2 голосов
/ 26 августа 2010

ОК, я потратил 12 часов из-за тривиальной проблемы.

Перехватчик не работал для ISession.Get

вот в чем я ошибся

public UserModel Save(UserModel user)
{
    UserModel result = null;
    using (ITransaction transaction = session.BeginTransaction())
    {
        var id = session.Save(user);
        //here i expect a proxied UserModel will returned
        result = session.Get<UserModel>(id);
        transaction.Commit();
    }
    return result;
}

Я понял, что мой перехватчик работает нормально после того, как решил просто оставить его и начать писать модульный тест для метода GetUsers, который использует Criteria API.

К вашему сведению, если вам интересно на перехватчике NHibernate, я нашел его здесь .

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