Ce code inclut les appels de fonctions Rechercher et Supprimer dans le cadre d'une seule session. Comme je le pense, le problème dans le code de la question en utilise des différents.
public T RemoveById(int id)
{
_transaction = Session.BeginTransaction(IsolationLevel.ReadCommitted);
T res=_session.Get<T>(id);
_session.Delete(entity);
_transaction.Commit();
}
(appel de l'action :)
RemoveById<MyEvent>(id)