Ho difficoltà capire NH eccezione:L'aggiornamento batch ha restituito il numero di righe inatteso dall'aggiornamento; conteggio effettivo delle righe: 0; attesi: 1
aggiornamento batch restituito conteggio di riga inaspettata aggiornamento; conteggio attuale conteggio: 0; previsto: 1
mia Dal codice:
public T Save(T item)
{
using (ISession session = NHibernateHelper.GetSession())
{
using (var transaction = session.BeginTransaction())
{
session.SaveOrUpdate(item);
transaction.Commit();
return item;
}
}
}
Il mio file log4net:
comando 0: UPDATE Metadata_FriendDetails SET UserId = @ p0, e-mail = @ p1, Name = @ p2 WHERE FriendId = @ p3; @ p0 = a358ab9d-d481-4bdd-8cb2-18ddc8898c70 [Tipo: Guid (0)], @ p1 = '[email protected]' [Tipo: String (4000)], @ p2 = 'myFriend' [Tipo: String (4000)], @ p3 = 2ea35658-edb1-43e3-b848-e1915d1042df [Tipo: Guid (0)]
2011-12-02 13: 06: 49.750 [agente: adattatore filettato utilizzata per la prova 'SaveFriendDetails_Test' con id '17016e48- 1ff4-4dea-8536-6aa3b24e5fb7' ] DEBUG NHibernate.AdoNet.AbstractBatcher - chiuso IDbCommand, aperti IDbCommands: 0 2011-12-02 13: 06: 49.751 [agente: adattatore filettato corsa per test 'SaveFriendDetails_Test' con id '17016e48-1ff4-4dea-8536-6aa3b24e5fb7'] ERRORE NHibernate.Event.Default.AbstractFlushingEventListener - Impossibile sincronizzare lo stato del database con la sessione NHibernate.StaleStateException: l'aggiornamento batch ha restituito la riga inattesa conteggio da aggiornamento; conteggio effettivo delle righe: 0; atteso: 1
Qualcuno vede il problema?
TIA
Un paio di possiblites, l'oggetto è indipendente e non è mai stato actaully creato nel databse, quindi non c'è nessuna riga oggetto originale da aggiornare. O qualcosa ha cambiato un valore nella tabella prima del tuo aggiornamento. Presumo che questa sia un'eccezione ripetibile? Sarebbe utile pubblicare alcuni sniffer di codice su come si stanno creando, aggiornando e salvando l'oggetto. – user957902
Penso che dovresti scrivere l'origine dell'eccezione con l'eccezione. Sarà più utile. – Joshi
added.i non è in grado di vedere perché: NHibernate.Event.Default.AbstractFlushingEventListener - Impossibile sincronizzare lo stato del database con la sessione NHibernate –