次の方法で共有


Scripts.CreateUserDefinedFunctionStreamAsync Method

Definition

Creates a user defined function as an asynchronous operation in the Azure Cosmos DB service.

public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage> CreateUserDefinedFunctionStreamAsync(Microsoft.Azure.Cosmos.Scripts.UserDefinedFunctionProperties userDefinedFunctionProperties, Microsoft.Azure.Cosmos.RequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateUserDefinedFunctionStreamAsync : Microsoft.Azure.Cosmos.Scripts.UserDefinedFunctionProperties * Microsoft.Azure.Cosmos.RequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage>
Public MustOverride Function CreateUserDefinedFunctionStreamAsync (userDefinedFunctionProperties As UserDefinedFunctionProperties, Optional requestOptions As RequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResponseMessage)

Parameters

userDefinedFunctionProperties
UserDefinedFunctionProperties

The UserDefinedFunctionProperties object.

requestOptions
RequestOptions
cancellationToken
CancellationToken

Returns

A task object representing the service response for the asynchronous operation.

Examples

This creates a user defined function then uses the function in an item query.

Scripts scripts = this.container.Scripts;
ResponseMessage response =await scripts.UserDefinedFunctions.CreateUserDefinedFunctionStreamAsync(
    new UserDefinedFunctionProperties 
    { 
        Id = "calculateTax", 
        Body = @"function(amt) { return amt * 0.05; }" 
    });

if (!response.IsSuccessStatusCode)
{
    //Handle and log exception
    return;
}

QueryDefinition sqlQuery = new QueryDefinition(
    "SELECT VALUE udf.calculateTax(t.cost) FROM toDoActivity t where t.cost > @expensive and t.status = @status")
    .WithParameter("@expensive", 9000)
    .WithParameter("@status", "Done");

using (FeedIterator<double> setIterator = this.container.Items.GetItemsQueryIterator<double>(
    sqlQueryDefinition: sqlQuery,
    partitionKey: "Done")
{
    while (setIterator.HasMoreResults)
    {
        foreach (var tax in await setIterator.ReadNextAsync())
        {
            Console.WriteLine(tax);
        }
    }
}

Applies to