为什么在我的函数中将 Azure 表存储中的列检索为“键”?

问题描述 投票:0回答:1
[FunctionName("GetInfo")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        [Table("table", Connection = "AzureWebJobsStorage")] TableClient tableClient,
        ILogger log)
    {
        try
        {
            var data = new List<object>();

            var entities = tableClient.Query<Azure.Data.Tables.TableEntity>().ToList();

            foreach (var entity in entities)
            {
                var info = new
                {
                    id = entity.RowKey,
                    name = entity.title,
                    createdOn = entity.Timestamp
                };

                data.Add(info);
            }

所以我现在正在本地运行这个函数,并使用邮递员来测试调用。表中的条目有一些列,例如 isDeleted、createdOn、createdBy、description 等。

我把

entities
放在手表上,它显示 this

表中的所有列,如 isDeleted,都是“键”的一部分,它比我希望的级别低一个级别,另外,它们只有键,没有值,也就是实际创建的人、实际创建的时间,删了还是没删啊

我认为在这种情况下,我什至无法过滤查询以仅检索非软删除的条目,而且,

name = entity.title
也不起作用,因为它必须是
entity.keys.title
,除了没有值也无法访问.

我该如何查询这些项目?

c# azure-functions azure-table-storage
1个回答
0
投票

我已经弄清楚了。我需要创建一个自定义表格实体来满足我的需求。

public class MyEntity : Azure.Data.Tables.ITableEntity
{
}

用我的表格的所有列标题填充它,使用这些属性就像

一样简单
var entities = tableClient
                .Query<MyEntity>()
                .Where(entity => entity.isDeleted == false)
                .ToList();
© www.soinside.com 2019 - 2024. All rights reserved.