2009-05-04 8 views
22

Quindi sto cercando di aggiornare un oggetto nel mio database MS SQL 2005 utilizzando NHibernate. Si prega di tenere presente che si tratta di un database legacy utilizzato in molti sistemi live e non riesco a rimuovere i trigger.NHibernate - L'aggiornamento di una tabella con un trigger provoca un errore - Conteggio righe imprevisto: 2; previsto: 1

Quando il mio provider di dati cerca di .SaveOrUpdate() una riga ottengo due ritorni (uno per l'aggiornamento vero e proprio, e uno quando il grilletto esegue)

Il ritorno grezzo assomiglia a questo:

(1 row (s) affected)

(1 row (s) affected)

NHibernate quindi genera un'eccezione così: "imprevisto conteggio di riga: 2; previsto: 1"

Sto essenzialmente cercando un equivalente a "SET NOCOUNT ON" dalla sessione.

Qualche idea?

risposta

32

E non è possibile aggiornare il trigger per disabilitare/abilitare il SET NOCOUNT prima/dopo il codice del trigger?

SET NOCOUNT ON - il trigger SET NOCOUNT OFF

+0

È così raro avere la risposta in modo rapido e semplice. Grazie Matthieu. – David

+0

Hai scosso il mio mondo! Grazie mille - Esattamente quello che stavo cercando :) – JuniorCoder

+0

La migliore risposta di sempre! Grazie Matt sei un Rockstar! – Chris

2

NHibernate JIRA NH-1353 fornisce una patch per disattivarla conteggio delle righe verifica nel file di configurazione. Sembra che questa patch non sia stata inserita nel trunk 2.x.