У меня есть сеанс NHibernate. В этом сеансе я выполняю ровно 1 операцию, которая заключается в запуске этого кода для получения списка:
public IList<Customer> GetCustomerByFirstName(string customerFirstName)
{
return _session.CreateCriteria(typeof(Customer))
.Add(new NHibernate.Expression.EqExpression("FirstName", customerFirstName))
.List<Customer>();
}
Я звоню Session.Flush()
в конце HttpRequest
, и я получаю HibernateAdoException
. NHibernate передает инструкцию обновления в базу данных и вызывает нарушение внешнего ключа. Если я не запускаю flush
, запрос завершается без проблем. Проблема здесь в том, что мне нужен сброс в случае, если есть изменения, которые происходят в других сеансах, так как этот код повторно используется в других областях. Возможно, мне не хватает другого параметра конфигурации?
Вот код из исключения:
[SQL: UPDATE CUSTOMER SET first_name = ?, last_name = ?, strategy_code_1 = ?, strategy_code_2 = ?, strategy_code_3 = ?, dts_import = ?, account_cycle_code = ?, bucket = ?, collector_code = ?, days_delinquent_count = ?, external_status_code = ?, principal_balance_amount = ?, total_min_pay_due = ?, current_balance = ?, amount_delinquent = ?, current_min_pay_due = ?, bucket_1 = ?, bucket_2 = ?, bucket_3 = ?, bucket_4 = ?, bucket_5 = ?, bucket_6 = ?, bucket_7 = ? WHERE customer_account_id = ?]
Параметры не отображаются как переданные.