/// <summary>
 ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
 ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
 ///     any release. You should only use it directly in your code with extreme caution and knowing that
 ///     doing so can result in application failures when updating to a new Entity Framework Core release.
 /// </summary>
 public static Func <IWeakReferenceIdentityMap> GetWeakReferenceIdentityMapFactory([NotNull] this IKey key)
 => key.AsKey().WeakReferenceIdentityMapFactory;
 /// <summary>
 ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
 ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
 ///     any release. You should only use it directly in your code with extreme caution and knowing that
 ///     doing so can result in application failures when updating to a new Entity Framework Core release.
 /// </summary>
 public static IPrincipalKeyValueFactory <TKey> GetPrincipalKeyValueFactory <TKey>([NotNull] this IKey key)
 => key.AsKey().GetPrincipalKeyValueFactory <TKey>();
 /// <summary>
 ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
 ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
 ///     any release. You should only use it directly in your code with extreme caution and knowing that
 ///     doing so can result in application failures when updating to a new Entity Framework Core release.
 /// </summary>
 public static Func <bool, IIdentityMap> GetIdentityMapFactory([NotNull] this IKey key)
 => key.AsKey().IdentityMapFactory;