Nhibernate isession.save方法抛出一般异常错误

时间:2012-01-25 09:42:38

标签: .net nhibernate

我是Nhibernate的新手。在我的应用程序中,我得到以下异常

 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();
    }

上述功能在保存日志信息时生成错误。 这个函数将在很长一段时间后调用(例如6到8小时),因为最后检查并执行了很多业务规则,这个方法调用并在mysql数据库表中写入日志信息。

在我调用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>

非常感谢

1 个答案:

答案 0 :(得分:1)

当您收到GenericADOException时,表示数据库无法执行提供给它的sql。我使用Nhibernate Profiler来调试这样的事情。它将显示它尝试执行的sql。如果对数据库运行相同的sql代码,通常会得到更详细的异常消息。

相关问题