Nhibernateを初めて使用しています。私のアプリケーションでは、私はNhibernate isession.saveメソッドが汎用例外エラーをスローする
NHibernate.Exceptions.GenericADOException: could not insert: [PAIRAlertAdmin.VO.TriggerLogVO][SQL: INSERT INTO triggerlog (TriggeredUserID, TriggeredDate, TriggeredMode, TriggeredIP, TriggerDescription) VALUES (?, ?, ?, ?, ?)] ---> MySql.Data.MySqlClient.MySqlException: Fatal error encountered during command execution.
次以下の例外を取得するには、このエラー
public void triggerLog(String logDetail, String AlertMode)
{
TriggerLogVO triggerLogVO = new TriggerLogVO();
triggerLogVO.TriggeredUserID = Convert.ToInt32(Session["userid"]);
triggerLogVO.TriggeredMode = AlertMode;
triggerLogVO.TriggeredDate = System.DateTime.Now.ToString();
triggerLogVO.TriggeredIP = BAL.PublicVariablesBAL.RemoteIPAddress;
triggerLogVO.TriggerDescription = logDetail.ToString(); ;
iSession.Save(triggerLogVO);
iSession.Flush();
}
ログ情報を保存しながら、上記の関数がエラーを生成を生成するコードです。 この関数は、多くのビジネスルールが最後にチェックされて実行され、最後にこのメソッドがmysqlデータベーステーブルにログ情報を呼び出して書き込むため、長い時間(たとえば6〜8時間)後に呼び出されます。
私はcalll iSession.Save
の行で例外をスローします。
ご協力いただきますようお願い申し上げます。
私のマッピングファイルを以下に示します。
<id name="TriggerID" column="ID" type="Int32">
<generator class="native"></generator>
</id>
<property name="TriggeredUserID" column="TriggeredUserID" type="Int32"></property>
<property name="TriggeredDate" column="TriggeredDate" type="string"></property>
<property name="TriggeredMode" column="TriggeredMode" type="string"></property>
<property name="TriggeredIP" column="TriggeredIP" type="string"></property>
<property name="TriggerDescription" column="TriggerDescription" type="string"></property>
あなたがGenericADOExceptionを取得すると、それはデータベースがにsupplieたSQLを実行することができなかったことを意味し
Nhibernateマッピングも追加できますか – Mharlin
情報が少なすぎます。どこでセッションを開いたり閉じたりしますか?マッピング? – hival