J'ai un NHibernate session. Dans cette session, je m'exécute exactement 1 de l'opération, qui consiste à exécuter ce code pour obtenir une liste:
public IList<Customer> GetCustomerByFirstName(string customerFirstName)
{
return _session.CreateCriteria(typeof(Customer))
.Add(new NHibernate.Expression.EqExpression("FirstName", customerFirstName))
.List<Customer>();
}
Je suis appelant Session.Flush()
à la fin de l' HttpRequest
, et je reçois HibernateAdoException
. NHibernate est de transmettre une instruction de mise à jour de la db, et entraînant une violation de clé étrangère. Si je n'ai pas exécuter l' flush
, la demande se termine sans problème. Le problème ici est que j'ai besoin de la rincer en place dans le cas où il y a un changement qui se produit dans d'autres sessions, étant donné que ce code est réutilisé dans d'autres domaines. Est-il un autre paramètre de configuration je pourrais être absent?
Voici le code de l'exception:
[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 = ?]
Aucun paramètre n'est pas affiché comme étant en cours de transmission.