5
Zasadniczo otrzymuję ten wyjątek podczas próby usunięcia kolekcji elementów z nHibernate. Poniżej jest mój kodNHibernate TooManyRowsAffectedException podczas próby usunięcia wielu obiektów.
public void DeleteAll<T>(IList<T> entities)
{
using(var tx = session.BeginTransaction())
{
try
{
entities.ForEach(e=>session.Delete(e));
tx.Commit();
}
catch(Exception)
{
tx.Rollback();
}
}
}
Korzystanie HQL działa bez problemu, ale wolałbym, aby trzymać się podejścia LINQish .. No i łączę się z bazą danych Oracle.
to jest wyjątek, jeśli operacja usuwania usuwa więcej wierszy niż oczekiwano. czy możesz sprawdzić wygenerowany sql i tabelę bazy danych, aby zobaczyć, która instrukcja może potencjalnie usunąć więcej niż jeden wiersz? – Firo
Rozumiem, dlaczego wyjątek został zgłoszony, oczekuje on, że tylko jeden wiersz zostanie zmieniony (w tym przypadku usunięty), ale dlaczego ???? Nhprof nie działa w naszym firmowym środowisku sieciowym :( – Duy
zaloguj się z log4net 'NHIbernate.SQL' do pliku, skopiuj tam sqls w kliencie Oracle i uruchom je tam, aby zobaczyć, który usuwa więcej niż jeden wiersz – Firo