C# Azure表查询问题

C# Azure表查询问题,c#,azure,azure-table-storage,C#,Azure,Azure Table Storage,我正在尝试将MS PnP CQRS项目升级到最新的Azure SDK,我有以下两个问题: var query = new TableQuery<EventTableServiceEntity>().Where( TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, UnpublishedRowKey

我正在尝试将MS PnP CQRS项目升级到最新的Azure SDK,我有以下两个问题:

var query = new TableQuery<EventTableServiceEntity>().Where(
    TableQuery.CombineFilters(
        TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, UnpublishedRowKeyPrefix),
        TableOperators.And,
        TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThanOrEqual, UnpublishedRowKeyPrefixUpperLimit)))
            .Select(x => new { x.PartitionKey })
            .AsTableQuery();

var query2 = eventTableServiceEntities
    .Where(
        x =>
            String.Compare(x.RowKey, UnpublishedRowKeyPrefix, StringComparison.Ordinal) >= 0 &&
            String.Compare(x.RowKey, UnpublishedRowKeyPrefixUpperLimit, StringComparison.Ordinal) <= 0)
   .Select(x => new { x.PartitionKey }).AsTableQuery();
其中
UnpublishedRowKeyPrefix
为:

private const string UnpublishedRowKeyPrefix = "Unpublished_";
你怎么能有意义地进行比较呢?我错过了什么

eventTableServiceEntities来自此处-我创建了一个变量以帮助调试:

var eventTableServiceEntities=new TableQuery();
var query2=eventTableServiceEntities
.在哪里(
x=>
String.Compare(x.RowKey,UnpublishedRowKeyPrefix,StringComparison.Ordinal)>=0&&
String.Compare(x.RowKey,UnpublishedRowKeyPrefixUpperLimit,StringComparison.Ordinal)new{x.PartitionKey})
.AsTableQuery();

您提供的字符串比较的工作方式如下:
当您对值>=“a”和<“b”进行筛选时,将返回所有以“a”开头的字符串。因此,对于您的示例,该筛选器似乎适用于所有以“Unpublished_”开头但低于您设置的UnpublishedRowKeyPrefixUpperLimit的字符串。至于制作Linq查询的帮助,这将有助于您了解用于编写查询的Fluent模式和较新的iQuery模式之间的区别,以及如何从一种模式转换到另一种模式。(相关内容位于页面的中间。)

是否尝试删除最后一个.Select和.AsTableQuery();从第一个查询开始?第一个查询开始工作..什么是eventTableServiceEntities?为什么不像上面那样使用新的TableQuery呢?所以我正在升级MS PnP项目中的cqrs代码。TBH代码对我来说没有意义,因为它要求字符串上的值等于或大于!昨晚我在想这个问题,我考虑的一件事是,它们在某个地方的等式运算符上超载了。但我还没有机会去看看。这是一个很长的机会:)@EmilyGerner微软我已经更新了我的q-我对所有这些都很困惑!因为这个小故障,我现在已经恢复使用非azure的东西,但我显然真的很想用它回到azure:)
private const string UnpublishedRowKeyPrefix = "Unpublished_";
var eventTableServiceEntities= new TableQuery<EventTableServiceEntity>();
var query2 = eventTableServiceEntities
            .Where(
                x =>
                String.Compare(x.RowKey, UnpublishedRowKeyPrefix, StringComparison.Ordinal) >= 0 &&
                String.Compare(x.RowKey, UnpublishedRowKeyPrefixUpperLimit, StringComparison.Ordinal) <= 0)
            .Select(x => new { x.PartitionKey })
            .AsTableQuery();