如何通过IEnumerable使用TableQuery进行查询?

问题描述 投票:1回答:1

我通过以下方法公开我的表:

public static class TableCacheService
{
    public static IEnumerable<Myentity> Read()
    {
        var acc = new CloudStorageAccount(
                     new StorageCredentials("account", "mypass"), false);
        var tableClient = acc.CreateCloudTableClient();
        var table = tableClient.GetTableReference("Myentity");
        return table.ExecuteQuery(new TableQuery<Myentity>());
    }
}

这是一个用法示例:

    var nodeHasValue = TableCacheService.Read()
                                        .Where(x => note.ToLower().Contains(x.RowKey.ToLower()))
                                        .Any();

但据说x.RowKey是空的!

enter image description here

看起来有两个成员都叫RowKey。其中一个是TableEntity

enter image description here

如何访问非null的RowKey?我错误地查询了桌子吗?

c# .net azure azure-table-storage azure-tablequery
1个回答
1
投票

看来你在RowKey类中隐藏了属性PartitionKeyMyentity

我想你的Myentity类有类似的东西:

public class Myentity: TableEntity
{
    public new string RowKey { get; set; }
    ...
}

注意关键字new。

如果您有此结构,则需要删除此属性。

有关隐藏和覆盖的更多信息,请访问here

另请查看ATS(Azure表存储)的工作示例是here

© www.soinside.com 2019 - 2024. All rights reserved.