2009-05-04 4 views
22

J'essaie donc de mettre à jour un objet dans ma base de données MS SQL 2005 en utilisant NHibernate. S'il vous plaît garder à l'esprit qu'il s'agit d'une base de données héritée utilisée dans de nombreux systèmes en direct et je ne peux pas supprimer les déclencheurs.NHibernate - La mise à jour d'une table avec un déclencheur provoque une erreur - Nombre de lignes inattendu: 2; attendu: 1

Quand mon fournisseur de données tente de .SaveOrUpdate() une ligne que je reçois deux retours (une pour la mise à jour réelle et un lorsque le déclencheur exécute)

Le retour brut ressemble à ceci:

(une rangée (s) affectée)

(1 ligne (s) affectée)

Hibernate lance une exception de ce type: "ligne inattendue compte: 2; attendu: 1"

Je cherche essentiellement un équivalent à "SET NOCOUNT ON" à partir de la session.

Des idées?

Répondre

32

Et vous ne pouvez pas mettre à jour le déclencheur pour désactiver/activer le SET NOCOUNT avant/après le code du déclencheur?

SET NOCOUNT ON - votre déclencheur SET NOCOUNT OFF

+0

Il est tellement rare d'obtenir la réponse rapidement et facilement. Merci Matthieu. – David

+0

Vous bercez mon monde! Merci beaucoup - Exactement ce que je cherchais :) – JuniorCoder

+0

Meilleure réponse jamais! Merci Matt, vous êtes une rockstar! – Chris

2

NHibernate JIRA NH-1353 fournit un patch pour Deactive nombre de lignes dans la vérification du fichier de configuration. Il semble que ce correctif ne l'a pas fait dans le tronc 2.x.

Questions connexes