Questo codice include le chiamate alle funzioni Trova ed Elimina nell'ambito di una singola sessione. Come penso, il problema nel codice della domanda sta usando diversi.
public T RemoveById(int id)
{
_transaction = Session.BeginTransaction(IsolationLevel.ReadCommitted);
T res=_session.Get<T>(id);
_session.Delete(entity);
_transaction.Commit();
}
(call from action:)
RemoveById<MyEvent>(id)