【发布时间】:2018-08-08 18:25:38
【问题描述】:
我正在尝试将 RowKey 从 Micorosft Docs 教程中预定义的姓氏:https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-how-to-use-dotnet#add-an-entity-to-a-table 更改为唯一值。
这是我当前的代码:
private void storeuserinput(Activity activity)
{
var uid = activity.From.Id;
var uname = activity.From.Name;
if (activity.Text?.ToLower().ToString() == "no" || activity.Text?.ToLower().ToString() == "NO" || activity.Text?.ToLower().ToString() == "No" || activity.Text?.ToLower().ToString() == "Nope" || activity.Text?.ToLower().ToString() == "nope")
{
var userinput = firstmessage;
string connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
// Parse the connection string and return a reference to the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Retrieve a reference to the table.
CloudTable table = tableClient.GetTableReference("UnansweredChatBot");
// Create the table if it doesn't exist.
table.CreateIfNotExists();
// Create a new customer entity.
CustomerEntity customer1 = new CustomerEntity("NoSolution", "Smith");
customer1.Query = firstmessage;
// Create the TableOperation object that inserts the customer entity.
TableOperation insertOperation = TableOperation.Insert(customer1);
// Execute the insert operation.
table.Execute(insertOperation);
}
//extract other data from "activity" object
//your code logic here
//store data in your table storage
//Note: specifcial scenario of user send attachment
}
public class CustomerEntity : TableEntity
{
public CustomerEntity(string lastName, string firstName)
{
this.PartitionKey = lastName;
this.RowKey = firstName;
}
public CustomerEntity() { } // the parameter-less constructor must be provided
public string Query { get; set; }
}
任何有关此问题的见解帮助将不胜感激!
【问题讨论】:
-
不知道你在问什么。您可以使用任何您想要的分区键和行键,只要两者的组合 (pk+rk) 是唯一的。请编辑您的问题以更具体。另外,请注意,每次调用
CreateTableIfNotExists()都需要调用表存储,如果您在设置/启动过程中创建表,则无需调用。
标签: c# azure azure-table-storage row-key