Beispiel #1
0
        /// <summary>
        ///     Causes a warning to be logged when the specified in-memory warnings are generated.
        /// </summary>
        /// <param name="warningsConfigurationBuilder"> The builder being used to configure warnings. </param>
        /// <param name="inMemoryEventIds">
        ///     The <see cref="InMemoryEventId" />(s) for the warnings.
        /// </param>
        /// <returns> The same builder instance so that multiple calls can be chained. </returns>
        public static WarningsConfigurationBuilder Log(
            [NotNull] this WarningsConfigurationBuilder warningsConfigurationBuilder,
            [NotNull] params InMemoryEventId[] inMemoryEventIds)
        {
            Check.NotNull(warningsConfigurationBuilder, nameof(warningsConfigurationBuilder));
            Check.NotNull(inMemoryEventIds, nameof(inMemoryEventIds));

            return(warningsConfigurationBuilder.WithOption(
                       e => e.WithExplicit(inMemoryEventIds.Cast <object>(), WarningBehavior.Log)));
        }
Beispiel #2
0
        /// <summary>
        ///     Causes nothing to happen when the specified relational database warnings are generated.
        /// </summary>
        /// <param name="warningsConfigurationBuilder"> The builder being used to configure warnings. </param>
        /// <param name="relationalEventIds">
        ///     The <see cref="RelationalEventId" />(s) for the warnings.
        /// </param>
        /// <returns> The same builder instance so that multiple calls can be chained. </returns>
        public static WarningsConfigurationBuilder Ignore(
            [NotNull] this WarningsConfigurationBuilder warningsConfigurationBuilder,
            [NotNull] params RelationalEventId[] relationalEventIds)
        {
            Check.NotNull(warningsConfigurationBuilder, nameof(warningsConfigurationBuilder));
            Check.NotNull(relationalEventIds, nameof(relationalEventIds));

            return(warningsConfigurationBuilder.WithOption(
                       e => e.WithExplicit(relationalEventIds.Cast <object>(), WarningBehavior.Ignore)));
        }
        /// <summary>
        ///     Causes nothing to happen when the specified in-memory warnings are generated.
        /// </summary>
        /// <param name="warningsConfigurationBuilder"> The builder being used to configure warnings. </param>
        /// <param name="inMemoryEventIds">
        ///     The <see cref="InMemoryEventId"/>(s) for the warnings.
        /// </param>
        /// <returns> The same builder instance so that multiple calls can be chained. </returns>
        public static WarningsConfigurationBuilder Ignore(
            [NotNull] this WarningsConfigurationBuilder warningsConfigurationBuilder,
            [NotNull] params InMemoryEventId[] inMemoryEventIds)
        {
            Check.NotNull(warningsConfigurationBuilder, nameof(warningsConfigurationBuilder));
            Check.NotNull(inMemoryEventIds, nameof(inMemoryEventIds));

            warningsConfigurationBuilder.Configuration
            .AddExplicit(inMemoryEventIds.Cast <object>(), WarningBehavior.Ignore);

            return(warningsConfigurationBuilder);
        }
        /// <summary>
        ///     Causes a warning to be logged when the specified relational database warnings are generated.
        /// </summary>
        /// <param name="warningsConfigurationBuilder"> The builder being used to configure warnings. </param>
        /// <param name="relationalEventIds">
        ///     The <see cref="RelationalEventId" />(s) for the warnings.
        /// </param>
        /// <returns> The same builder instance so that multiple calls can be chained. </returns>
        public static WarningsConfigurationBuilder Log(
            [NotNull] this WarningsConfigurationBuilder warningsConfigurationBuilder,
            [NotNull] params RelationalEventId[] relationalEventIds)
        {
            Check.NotNull(warningsConfigurationBuilder, nameof(warningsConfigurationBuilder));
            Check.NotNull(relationalEventIds, nameof(relationalEventIds));

            warningsConfigurationBuilder.Configuration
            .AddExplicit(relationalEventIds.Cast <object>(), WarningBehavior.Log);

            return(warningsConfigurationBuilder);
        }
Beispiel #5
0
        /// <summary>
        ///     Configures the runtime behavior of warnings generated by Entity Framework. You can set a default behavior and behaviors for
        ///     each warning type.
        /// </summary>
        /// <example>
        ///     <code>
        ///         optionsBuilder.ConfigureWarnings(warnings =>
        ///             warnings.Default(WarningBehavior.Ignore)
        ///                     .Log(CoreEventId.IncludeIgnoredWarning, CoreEventId.ModelValidationWarning)
        ///                     .Throw(RelationalEventId.QueryClientEvaluationWarning))
        ///     </code>
        /// </example>
        /// <param name="warningsConfigurationBuilderAction">
        ///     An action to configure the warning behavior.
        /// </param>
        /// <returns> The same builder instance so that multiple calls can be chained. </returns>
        public virtual DbContextOptionsBuilder ConfigureWarnings(
            [NotNull] Action <WarningsConfigurationBuilder> warningsConfigurationBuilderAction)
        {
            Check.NotNull(warningsConfigurationBuilderAction, nameof(warningsConfigurationBuilderAction));

            var warningConfigurationBuilder
                = new WarningsConfigurationBuilder(
                      Options.FindExtension <CoreOptionsExtension>()?.WarningsConfiguration);

            warningsConfigurationBuilderAction(warningConfigurationBuilder);

            return(SetOption(e => e.WarningsConfiguration = warningConfigurationBuilder.Configuration));
        }
Beispiel #6
0
        private static WarningsConfigurationBuilder WithOption(
            this WarningsConfigurationBuilder warningsConfigurationBuilder,
            Func <WarningsConfiguration, WarningsConfiguration> withFunc)
        {
            var optionsBuilder = warningsConfigurationBuilder.OptionsBuilder;

            var coreOptionsExtension = optionsBuilder.Options.FindExtension <CoreOptionsExtension>() ?? new CoreOptionsExtension();

            ((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(
                coreOptionsExtension.WithWarningsConfiguration(withFunc(coreOptionsExtension.WarningsConfiguration)));

            return(warningsConfigurationBuilder);
        }
 private static void ConfigureWarnings(
     WarningsConfigurationBuilder builder)
 {
     builder.Ignore(InMemoryEventId.TransactionIgnoredWarning);
 }