/// <summary>
        /// Gets whether two keys equals, or not.
        /// </summary>
        /// <param name="obj1">The first key.</param>
        /// <param name="obj2">The second key.</param>
        /// <returns><true /> if the keys equals each other, otherwise false.</returns>
        public static bool Equals(RepositoryKey obj1, RepositoryKey obj2)
        {
            if ((object.Equals(null, obj1) || object.Equals(null, obj2)) || (obj1.GetType() != obj2.GetType()))
            {
                return(false);
            }

            return(ReferenceEquals(obj1.PropertyMappings, obj2.PropertyMappings) &&
                   ReferenceEquals(obj1.DataProvider, obj2.DataProvider) &&
                   obj1.RepositoryType.Equals(obj2.RepositoryType) && obj1.QueryProperty == obj2.QueryProperty);
        }
 /// <summary>
 /// Gets whether this key equals to another one.
 /// </summary>
 /// <param name="other">The other key.</param>
 /// <returns><true /> if the <paramref name="other"/> equals this key, otherwise false.</returns>
 public bool Equals(RepositoryKey other)
 {
     return(Equals(this, other));
 }