Ejemplo n.º 1
0
        /// <summary>
        ///     Use System.Text.Json to access MySQL JSON data.
        /// </summary>
        /// <param name="optionsBuilder"> The builder being used to configure MySQL. </param>
        /// <param name="options">
        ///     Configures the context to use the specified change tracking option as the default for all JSON column
        ///     mapped properties.
        /// </param>
        /// <returns> The options builder so that further configuration can be chained. </returns>
        public static MySqlDbContextOptionsBuilder UseMicrosoftJson(
            [NotNull] this MySqlDbContextOptionsBuilder optionsBuilder,
            MySqlCommonJsonChangeTrackingOptions options = MySqlCommonJsonChangeTrackingOptions.RootPropertyOnly)
        {
            Check.NotNull(optionsBuilder, nameof(optionsBuilder));

            var coreOptionsBuilder = ((IRelationalDbContextOptionsBuilderInfrastructure)optionsBuilder).OptionsBuilder;

            var extension = (coreOptionsBuilder.Options.FindExtension <MySqlJsonMicrosoftOptionsExtension>() ??
                             new MySqlJsonMicrosoftOptionsExtension())
                            .WithJsonChangeTrackingOptions(options);

            ((IDbContextOptionsBuilderInfrastructure)coreOptionsBuilder).AddOrUpdateExtension(extension);

            return(optionsBuilder);
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     The change tracking option that will be used as the default for all JSON column mapped properties.
 /// </summary>
 public virtual MySqlJsonOptionsExtension WithJsonChangeTrackingOptions(MySqlCommonJsonChangeTrackingOptions options)
 => WithJsonChangeTrackingOptions(options.ToJsonChangeTrackingOptions());
 public static MySqlJsonChangeTrackingOptions ToJsonChangeTrackingOptions(this MySqlCommonJsonChangeTrackingOptions options)
 => options switch
 {