Azure表存储分区键行键,如何在对应相同分区和不同rowKey的位置插入多个实体?

问题描述

我是C#.net开发人员,正在创建一个电子邮件跟踪系统。我想将数据存储到Azure表存储中,但是我想使用不同的行键在同一分区中创建所有实体。我的属性键相同,但值不同。例如:

partition key = "Test+id"
row key=123
properties:
subject:"Hello",from:"xyz@gmail.com",to:"abc@gmail.com",body:"Hello I am a test email"

现在,我想创建一个上述副本,但具有不同的rowKey值,相同的分区键值和相同的属性键,但具有不同的值。像这样:

partition key = "Test+id",row key="787",properties:
subject: "HelloTesting",from:"sam@gmail.com",to:"alex@gmail.com",body: "Hello I am a test email2,this is so nice"

这是我用来添加属性的C#代码:

foreach (KeyValuePair<string,string> keyValuePair in list)
{
    dynamicTableEntity.RowKey = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.SSS");
    Console.WriteLine(keyValuePair.Key);

    if (keyValuePair.Key.Equals("subject"))
    {
        dynamicTableEntity.Properties.Add("subject",EntityProperty.CreateEntityPropertyFromObject(keyValuePair.Value));
    }
    else if (keyValuePair.Key.Equals("toRecipients") )
    {
        dynamicTableEntity.Properties.Add("toRecipients",EntityProperty.CreateEntityPropertyFromObject(keyValuePair.Value));
    }
    else if (keyValuePair.Key.Equals("from") )
    {
        dynamicTableEntity.Properties.Add("from",EntityProperty.CreateEntityPropertyFromObject(keyValuePair.Value));
    }
    else if (keyValuePair.Key.Equals("bodyPreview") )
    {
        dynamicTableEntity.Properties.Add("bodyPreview",EntityProperty.CreateEntityPropertyFromObject(keyValuePair.Value));
    }
    else
    {
        dynamicTableEntity.Properties.Add(keyValuePair.Key,EntityProperty.CreateEntityPropertyFromObject(keyValuePair.Value));
    }
}

任何帮助将不胜感激。

解决方法

您插入实体的代码对我有用。只是为了简单起见,因为您知道数据类型:

foreach (KeyValuePair<string,string> keyValuePair in list)
{
    if (keyValuePair.Key.Equals("subject"))
    {
        dynamicTableEntity.Properties.Add("subject",EntityProperty.GeneratePropertyForString(keyValuePair.Value));
    }

    ...
}

由于你没有提到你得到什么异常,我假设当行键在一秒钟内获得与使用的“SSS”相同的值时,会出现 RowKey 冲突在 DateTime 中没有效果。尝试使用 fffFFF 获得 milliseconds

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...