ウィンドウアプリケーションでは、nHibernateを使用しています。テーブル(Tag1またはTag2)のデータを更新するときに問題が発生し、同じISessionで、Oracle Packageを使用してテーブルから別のテーブル(QAテーブル)にデータを挿入しています。コミット時に、OracleパッケージはTag1 / Tag2テーブルの変更されたデータを認識しないため、変更されたデータはQAテーブルで更新されません。同じセッションで呼び出されたためでしょうか?
using (ISession session = iNhibernet.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
try
{
// Business Entity Saved in Tag1/Tag2 Table
session.SaveOrUpdate(l);
}
catch (Exception ex)
{
ErrorLogExceptionHandler.ErrorLog(ref ex);
throw new Exception("Unable to save data");
}
// Calling Oracle Package to Compare Tag1 and Tag2 data and inserting data in QA Table.
IDbCommand db = ProductionLog.ProductionLogUpdate(l.ProductionlogSeqNo, loadAction) as DbCommand;
db.Connection = session.Connection;
try
{
db.ExecuteNonQuery();
}
catch (Exception ex)
{
ErrorLogExceptionHandler.ErrorLog(ref ex);
throw new Exception("Unable to insert in production log");
}
transaction.Commit();
}
}
助けてもらえますか。
ありがとう、