Този код включва извиквания на функции за намиране и изтриване в рамките на една сесия. Както мисля, проблемът в кода от въпроса е използването на различни.
public T RemoveById(int id)
{
_transaction = Session.BeginTransaction(IsolationLevel.ReadCommitted);
T res=_session.Get<T>(id);
_session.Delete(entity);
_transaction.Commit();
}
(обаждане от действие:)
RemoveById<MyEvent>(id)