/// <summary>
 /// Resolves the single key property for the specified type.
 /// </summary>
 /// <param name="keyPropertyResolver">The <see cref="IKeyPropertyResolver"/>.</param>
 /// <param name="type">The type to resolve the key property for.</param>
 /// <param name="isIdentity">Indicates whether the key properties are identity properties.</param>
 /// <returns>A <see cref="PropertyInfo"/> instance of the key property of <paramref name="type"/>.</returns>
 public static PropertyInfo ResolveKeyProperty(this IKeyPropertyResolver keyPropertyResolver, Type type, out bool isIdentity) =>
 keyPropertyResolver.ResolveKeyProperties(type, out isIdentity).FirstOrDefault();
 /// <summary>
 /// Sets the <see cref="IKeyPropertyResolver"/> implementation for resolving key properties of entities.
 /// </summary>
 /// <param name="resolver">An instance of <see cref="IKeyPropertyResolver"/>.</param>
 public static void SetKeyPropertyResolver(IKeyPropertyResolver resolver) => _keyPropertyResolver = resolver;
 /// <summary>
 /// Resolves the single key property for the specified type.
 /// </summary>
 /// <param name="keyPropertyResolver">The <see cref="IKeyPropertyResolver"/>.</param>
 /// <param name="type">The type to resolve the key property for.</param>
 /// <returns>A <see cref="PropertyInfo"/> instance of the key property of <paramref name="type"/>.</returns>
 public static PropertyInfo ResolveKeyProperty(this IKeyPropertyResolver keyPropertyResolver, Type type)
 => keyPropertyResolver.ResolveKeyProperties(type).FirstOrDefault();