gpt4 book ai didi

c# - 使用 Microsoft.Azure.Storage (cosmosDB) 更新表对象失败

转载 作者:行者123 更新时间:2023-12-03 05:04:11 24 4
gpt4 key购买 nike

我无法使用 Microsoft.Azure.CosmosDB.Table 更新表对象,并出现以下异常。 “消息:请求的资源在服务器上不再可用。”代码: 消失了我可以毫无问题地运行选择。

使用命名空间 Microsoft.WindowsAzure 我可以进行查询和更新。此代码还适用于 devdb 存储或者如果我将连接字符串更改为 Azure 表存储。唯一不起作用的是指向 CosmosDb。

`

Microsoft.Azure.Storage;
using Microsoft.Azure.CosmosDB.Table;

namespace AzureTester
{
class Program
{
static void Main(string[] args)
{
//cosmosdb.azure these don't work for TableOperation.InsertOrMerge(x). They do for Selects
var connectionString = "........TableEndpoint=https://*****.table.cosmosdb.azure.com:443/;";

//table storage or dev this works for everything
//var connectionString = ".....EndpointSuffix=core.windows.net";
//var connectionString = "UseDevelopmentStorage=true;";

var storageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
var table = tableClient.GetTableReference("Boat");

TableQuery<Boat> query = new TableQuery<Boat>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "jack"));

var returnedBoat = table.ExecuteQuerySegmentedAsync<Boat>(query, null).Result; //this always works.

Boat x = new Boat();
x.PartitionKey = "jack";
x.RowKey = "black";
x.Type = "dragon";
TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(x);
//hangs on this line when connection string is cosmosdb.azure.com
TableResult result = table.Execute(insertOrMergeOperation);
Boat inserted = result.Result as Boat;
}

最佳答案

当 Cosmos DB Table API 推出时,我认为他们使用了命名空间 Microsoft.Azure.Storage,但他们现在使用 Microsoft.Azure.CosmosDB.Table。此外,从您的代码来看,尚不清楚您是否想要访问 Cosmos DB 表或 Azure 存储表。如果要访问 Azure 存储表,则必须使用 WindowsAzure.Storage.* 程序集,并且您将访问存储帐户。

如果要访问 CosmosDB 表中的数据,则必须使用其表 API,并且数据必须位于 Cosmos DB 数据库中,而不是 Azure 存储中。有关使用 .NET 访问 Cosmos DB 表的示例,请参阅 Quickstart: Build a Table API app with .NET and Azure Cosmos DB .

关于c# - 使用 Microsoft.Azure.Storage (cosmosDB) 更新表对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48770020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com