我有一个 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 = ?]
没有参数显示为正在传递。