public virtual FunctionConfiguration Function(string name) { FunctionConfiguration function = new FunctionConfiguration(this, name); _procedures.Add(function); return(function); }
/// <summary> /// Creates a new Function that binds to Collection(EntityType). /// </summary> /// <param name="name">The name of the Function</param> /// <returns>A <see cref="FunctionConfiguration"/> to allow further configuration of the Function.</returns> public FunctionConfiguration Function(string name) { Contract.Assert(ModelBuilder != null); FunctionConfiguration configuration = ModelBuilder.Function(name); configuration.SetBindingParameter(BindingParameterConfiguration.DefaultBindingParameterName, this); return(configuration); }
/// <summary> /// Create a Function that binds to this EntityType. /// </summary> /// <param name="name">The name of the function.</param> /// <returns>The FunctionConfiguration to allow further configuration of the new Function.</returns> public FunctionConfiguration Function(string name) { Contract.Assert(_configuration != null && _configuration.ModelBuilder != null); FunctionConfiguration function = _configuration.ModelBuilder.Function(name); function.SetBindingParameter(BindingParameterConfiguration.DefaultBindingParameterName, _configuration); return(function); }
private static EdmOperationImport CreateFunctionImport( FunctionConfiguration function, EdmEntityContainer container, IEdmTypeReference returnReference, IEdmExpression expression, IEdmPathExpression pathExpression) { EdmFunction operation = new EdmFunction( function.Namespace, function.Name, returnReference, function.IsBindable, pathExpression, function.IsComposable); return(new EdmFunctionImport(container, function.Name, operation, expression, includeInServiceDocument: function.IncludeInServiceDocument)); }
private static void AddOperationLinkBuilder(IEdmModel model, IEdmOperation operation, OperationConfiguration operationConfiguration) { ActionConfiguration actionConfiguration = operationConfiguration as ActionConfiguration; IEdmAction action = operation as IEdmAction; FunctionConfiguration functionConfiguration = operationConfiguration as FunctionConfiguration; IEdmFunction function = operation as IEdmFunction; if (operationConfiguration.BindingParameter.TypeConfiguration.Kind == EdmTypeKind.Entity) { if (actionConfiguration != null && actionConfiguration.GetActionLink() != null && action != null) { model.SetOperationLinkBuilder( action, new OperationLinkBuilder(actionConfiguration.GetActionLink(), actionConfiguration.FollowsConventions)); } else if (functionConfiguration != null && functionConfiguration.GetFunctionLink() != null && function != null) { model.SetOperationLinkBuilder( function, new OperationLinkBuilder(functionConfiguration.GetFunctionLink(), functionConfiguration.FollowsConventions)); } } else if (operationConfiguration.BindingParameter.TypeConfiguration.Kind == EdmTypeKind.Collection) { CollectionTypeConfiguration collectionTypeConfiguration = (CollectionTypeConfiguration)operationConfiguration.BindingParameter.TypeConfiguration; if (collectionTypeConfiguration.ElementType.Kind == EdmTypeKind.Entity) { if (actionConfiguration != null && actionConfiguration.GetFeedActionLink() != null && action != null) { model.SetOperationLinkBuilder( action, new OperationLinkBuilder(actionConfiguration.GetFeedActionLink(), actionConfiguration.FollowsConventions)); } else if (functionConfiguration != null && functionConfiguration.GetFeedFunctionLink() != null && function != null) { model.SetOperationLinkBuilder( function, new OperationLinkBuilder(functionConfiguration.GetFeedFunctionLink(), functionConfiguration.FollowsConventions)); } } } }
private static void AddProcedureLinkBuilder(IEdmModel model, IEdmOperation operation, ProcedureConfiguration procedure) { if (procedure.BindingParameter.TypeConfiguration.Kind == EdmTypeKind.Entity) { ActionConfiguration actionConfiguration = procedure as ActionConfiguration; IEdmAction action = operation as IEdmAction; FunctionConfiguration functionConfiguration = procedure as FunctionConfiguration; IEdmFunction function = operation as IEdmFunction; if (actionConfiguration != null && actionConfiguration.GetActionLink() != null && action != null) { model.SetActionLinkBuilder( action, new ActionLinkBuilder(actionConfiguration.GetActionLink(), actionConfiguration.FollowsConventions)); } else if (functionConfiguration != null && functionConfiguration.GetFunctionLink() != null && function != null) { model.SetFunctionLinkBuilder( function, new FunctionLinkBuilder(functionConfiguration.GetFunctionLink(), functionConfiguration.FollowsConventions)); } } }