gpt4 book ai didi

Azure 表存储 - 具有不同名称的 TableEntity 映射列

转载 作者:行者123 更新时间:2023-12-04 14:43:28 24 4
gpt4 key购买 nike

我使用 Azure 表存储作为语义日志记录应用程序 block 的数据接收器。当我调用由自定义 EventSource 写入的日志时,我得到类似于 ff.:

的列
  • 事件ID
  • Payload_username
  • 操作码

我可以通过创建一个与列名称完全匹配的 TableEntity 类来获取这些列(由于某种原因,除了 EventId):

public class ReportLogEntity : TableEntity
{
public string EventId { get; set; }
public string Payload_username { get; set; }
public string Opcode { get; set; }
}

但是,我想将这些列中的数据存储在我的 TableEntity 中不同命名的属性中:

public class ReportLogEntity : TableEntity
{
public string Id { get; set; } // maps to "EventId"
public string Username { get; set; } // maps to "Payload_username"
public string Operation { get; set; } // maps to "Opcode"
}

是否有一个映射器/属性可以让我使用与 TableEntity 属性名称不同的列名称?

最佳答案

您可以覆盖 ReadEntityWriteEntity接口(interface)方法ITableEntity自定义您自己的属性名称。

    public class ReportLogEntity : TableEntity
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Id { get; set; } // maps to "EventId"
public string Username { get; set; } // maps to "Payload_username"
public string Operation { get; set; } // maps to "Opcode"

public override void ReadEntity(IDictionary<string, EntityProperty> properties, OperationContext operationContext)
{
this.PartitionKey = properties["PartitionKey"].StringValue;
this.RowKey = properties["RowKey"].StringValue;
this.Id = properties["EventId"].StringValue;
this.Username = properties["Payload_username"].StringValue;
this.Operation = properties["Opcode"].StringValue;
}

public override IDictionary<string, EntityProperty> WriteEntity(OperationContext operationContext)
{
var properties = new Dictionary<string, EntityProperty>();
properties.Add("PartitionKey", new EntityProperty(this.PartitionKey));
properties.Add("RowKey", new EntityProperty(this.RowKey));
properties.Add("EventId", new EntityProperty(this.Id));
properties.Add("Payload_username", new EntityProperty(this.Username));
properties.Add("Opcode", new EntityProperty(this.Operation));
return properties;
}
}

关于Azure 表存储 - 具有不同名称的 TableEntity 映射列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30163618/

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