1

我想使用 csx 查询 CosmosDB 集合以查看文档是否已存在于 Azure 函数中。

除了以下代码之外,我还对 cosmosDB 集合进行了隐式绑定,以便能够创建新文档。这是使用

binder.BindAsync<IAsyncCollector<string>>(new CosmosDBAttribute("test", "collection")

这是我的功能的简单版本。

#r "System"
#r "Microsoft.Azure.WebJobs.Extensions.CosmosDB"

using System;
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;

public static async Task<string> Run(string localityId, Binder binder, TraceWriter log)
{
    ...

    string EndpointUrl = "<your endpoint URL>";
    string PrimaryKey = "<your primary key>";
    DocumentClient client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);

    ...
}

这会导致以下错误消息:

错误 CS0246:找不到类型或命名空间名称“DocumentClient”(您是否缺少 using 指令或程序集引用?)

我已经安装了扩展Microsoft.Azure.WebJobs.Extensions.CosmosDB

我在 MacOS 上运行,使用func host start命令在本地进行测试。

4

1 回答 1

1

错误 CS0246:找不到类型或命名空间名称“DocumentClient”(您是否缺少 using 指令或程序集引用?)

看来您需要参考#r "Microsoft.Azure.Documents.Client"。您还可以从Azure Cosmos DB 绑定中获取用于 Azure Functions 的演示代码

 #r "Microsoft.Azure.Documents.Client"

    using System;
    using Microsoft.Azure.Documents;
    using System.Collections.Generic;


    public static void Run(IReadOnlyList<Document> documents, TraceWriter log)
    {
      log.Verbose("Documents modified " + documents.Count);
      log.Verbose("First document Id " + documents[0].Id);
    }

更新:

若要在 C# 函数中使用 NuGet 包,请将 project.json 文件上传到函数应用文件系统中的函数文件夹。这是一个添加引用的示例 project.json 文件

在此处输入图像描述

于 2018-03-07T09:33:33.127 回答