/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> protected virtual void ApplyCustomizations([NotNull] InternalModelBuilder modelBuilder, [NotNull] string name, [NotNull] Annotation annotation) { var dbFunctionBuilder = new InternalDbFunctionBuilder((DbFunction)annotation.Value); var methodInfo = dbFunctionBuilder.Metadata.MethodInfo; var dbFunctionAttribute = methodInfo.GetCustomAttributes <DbFunctionAttribute>().SingleOrDefault(); dbFunctionBuilder.HasName(dbFunctionAttribute?.FunctionName ?? methodInfo.Name, ConfigurationSource.Convention); dbFunctionBuilder.HasSchema(dbFunctionAttribute?.Schema, ConfigurationSource.Convention); }
public virtual Annotation Apply(InternalModelBuilder modelBuilder, string name, Annotation annotation, Annotation oldAnnotation) { Check.NotNull(modelBuilder, nameof(modelBuilder)); Check.NotNull(name, nameof(name)); if (name.StartsWith(RelationalAnnotationNames.DbFunction, StringComparison.OrdinalIgnoreCase) && annotation != null && oldAnnotation == null) { var dbFunctionBuilder = new InternalDbFunctionBuilder((DbFunction)annotation.Value); var methodInfo = dbFunctionBuilder.Metadata.MethodInfo; var dbFunctionAttribute = methodInfo.GetCustomAttributes <DbFunctionAttribute>().SingleOrDefault(); dbFunctionBuilder.HasName(dbFunctionAttribute?.FunctionName ?? methodInfo.Name, ConfigurationSource.Convention); dbFunctionBuilder.HasSchema(dbFunctionAttribute?.Schema ?? modelBuilder.Metadata.Relational().DefaultSchema, ConfigurationSource.Convention); } return(annotation); }