public virtual T GetById(TKey Id, Guid userId)
        {
            var eventIds = this.GetUserEventIds(userId);
            T   result;

            using (var uow = _db.GetTransaction())
            {
                result = _db.SingleOrDefault <T>("WHERE Id = @0 AND EventId IN (@1)", Id, eventIds);
                uow.Complete();
            }
            return(result);
        }