Este código incluye llamadas a las funciones Buscar y Eliminar en el ámbito de una sola sesión. Según creo, el problema en el código de la pregunta es usar otros diferentes.
public T RemoveById(int id)
{
_transaction = Session.BeginTransaction(IsolationLevel.ReadCommitted);
T res=_session.Get<T>(id);
_session.Delete(entity);
_transaction.Commit();
}
(llamada desde la acción:)
RemoveById<MyEvent>(id)