/// <summary>
        /// Initializes a new instance of the <see cref="ObjectExtensionPropertyInfoEfCoreMappingOptions"/> class.
        /// </summary>
        /// <param name="extensionProperty">The extension property.</param>
        /// <param name="propertyBuildAction">The property build action.</param>
        public ObjectExtensionPropertyInfoEfCoreMappingOptions(
            [NotNull] ObjectExtensionPropertyInfo extensionProperty,
            [CanBeNull] Action <PropertyBuilder> propertyBuildAction = null)
        {
            ExtensionProperty = Check.NotNull(extensionProperty, nameof(extensionProperty));

            PropertyBuildAction = propertyBuildAction;
        }
        /// <summary>
        /// Determines whether [is mapped to field for ef core] [the specified property extension].
        /// </summary>
        /// <param name="propertyExtension">The property extension.</param>
        /// <returns><c>true</c> if [is mapped to field for ef core] [the specified property extension]; otherwise, <c>false</c>.</returns>
        public static bool IsMappedToFieldForEfCore(
            [NotNull] this ObjectExtensionPropertyInfo propertyExtension)
        {
            Check.NotNull(propertyExtension, nameof(propertyExtension));

            return(propertyExtension
                   .Configuration
                   .ContainsKey(EfCorePropertyConfigurationName));
        }
        public static ObjectExtensionPropertyInfoEfCoreMappingOptions GetEfCoreMappingOrNull(
            [NotNull] this ObjectExtensionPropertyInfo propertyExtension)
        {
            Check.NotNull(propertyExtension, nameof(propertyExtension));

            return(propertyExtension
                   .Configuration
                   .GetOrDefault(EfCorePropertyConfigurationName)
                   as ObjectExtensionPropertyInfoEfCoreMappingOptions);
        }
        public static ObjectExtensionPropertyInfo MapEfCore(
            [NotNull] this ObjectExtensionPropertyInfo propertyExtension,
            [CanBeNull] Action <PropertyBuilder> propertyBuildAction = null)
        {
            Check.NotNull(propertyExtension, nameof(propertyExtension));

            propertyExtension.Configuration[EfCorePropertyConfigurationName] =
                new ObjectExtensionPropertyInfoEfCoreMappingOptions(
                    propertyExtension,
                    propertyBuildAction
                    );

            return(propertyExtension);
        }