public IDbCommand QueryExecuting(IDbCommand command) { switch (_handler) { case EventType.Select: _source.RaiseSelect(command); break; case EventType.Insert: _source.RaiseInsert(this, command); break; case EventType.Delete: _source.RaiseDelete(this, command); break; case EventType.Update: _source.RaiseUpdate(this, command); break; case EventType.Non: _source.RaiseNoResult(this, command); break; default: throw new ArgumentOutOfRangeException(); } return(command); }