2012-01-25 4 views
0

Я новичок в 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(); 
    } 

выше функция генерирует ошибку при сохранении информации журнала. Эта функция будет вызываться через долгое время (например, от 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> 

Благодаря inadvance

+0

Можете ли вы добавить отображение nhibernate, а также – Mharlin

+1

Слишком мало информации. Где вы открываете/закрываете сеанс, транзакцию? Отображения? – hival

ответ

1

Когда вы получите GenericADOException это означает, что база данных не может выполнить SQL, который был коммерц к Это. Я использую Nhibernate Profiler для отладки таких вещей. Он покажет вам sql, который он пытался выполнить. Если вы запускаете один и тот же код sql против своего db, вы обычно получаете более подробное сообщение об исключении.

+0

благодарит за ответ – VijayMathew

+0

, если вам нравится ответ, вы можете поддержать и/или принять его как ответ :-) – Mharlin

+1

Он не может выдвигать свою кандидатуру с 1 изображением. так что возьмите мой – gdoron

Смежные вопросы