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

How to query using TableQuery via IEnumerable?

我正在通过以下方法公开我的 Table:

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 为空!

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

如何访问非空的 RowKey?我是否错误地查询了 table?

您的 Myentity class.

中似乎隐藏了属性 RowKeyPartitionKey

我猜你的 Myentity class 有类似的东西:

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

关注关键词new.

如果你有这个结构你需要删除这个属性。

有关隐藏和覆盖的更多信息,您可以找到 here

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