public static ConventionAnnotation?SetOrRemoveAnnotation( [NotNull] this ConventionAnnotatable annotatable, [NotNull] string name, [CanBeNull] object?value, ConfigurationSource configurationSource) { if (value == null) { annotatable.RemoveAnnotation(name); return(null); } return(annotatable.SetAnnotation(name, value, configurationSource)); }
/// <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 void SetOrRemoveAnnotation( [NotNull] this ConventionAnnotatable annotatable, [NotNull] string name, [CanBeNull] object value, ConfigurationSource configurationSource) { if (value == null) { annotatable.RemoveAnnotation(name); } else { annotatable.SetAnnotation(name, value, configurationSource); } }
/// <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 virtual void MergeAnnotationsFrom( [NotNull] ConventionAnnotatable annotatable, ConfigurationSource minimalConfigurationSource) { foreach (var annotation in annotatable.GetAnnotations()) { var configurationSource = annotation.GetConfigurationSource(); if (configurationSource.Overrides(minimalConfigurationSource)) { HasAnnotation( annotation.Name, annotation.Value, configurationSource, canOverrideSameSource: false); } } }
/// <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> protected InternalAnnotatableBuilder([NotNull] ConventionAnnotatable metadata) { Metadata = metadata; }
/// <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 virtual void MergeAnnotationsFrom([NotNull] ConventionAnnotatable annotatable) => MergeAnnotationsFrom(annotatable, ConfigurationSource.Explicit);