internal static string GetUserKey <T>(T obj, Guid?alternateId = null) where T : Dwarf <T>, new()
        {
            var objectKey = typeof(T).Implements <ICompositeId>()
                                   ? DwarfHelper.GetUniqueKeyForCompositeId(obj)
                                   : alternateId.HasValue ? alternateId.Value.ToString() : obj.Id.ToString();

            return(GetUserKey(objectKey));
        }