如何解决如何在C#中解析Odata过滤器字符串?
我正在尝试在Azure表存储中执行表操作以根据提供的筛选器检索实体。我允许用户在文本框中输入过滤器。
我需要先解析过滤器字符串,然后再将其发送到Azure。我该怎么做?是否存在可以解析此过滤器字符串的预定义方法或程序包?还是我必须手动编写正则表达式才能执行此解析?
这是我的Table操作完成,而之前没有进行任何解析。
var myFilterString = "PartitionKey eq '2' and ((PartitionKey eq '1' and RowKey eq '100') or RowKey eq '3')";
var entities = cloudTable.ExecuteQuerySegmented(new TableQuery().Where(myFilterString)).ToList();
谢谢。
解决方法
没有,没有这样的方法。一切都与它的设计方式有关。
-
查询通过http生成api调用。这意味着库不知道您的模式。它不知道您的分区键以及它们是否正确
-
检查以下示例
var query = new TableQuery<SymmetricKey>().Where(TableQuery.GenerateFilterCondition("PartitionKey",QueryComparisons.Equal,"SymmetricKey"));
该库显然在这里是为了简化http调用的创建而已。
- 将查询的创建委托给您的用户总是一个坏主意。
几乎永远不会发生这种情况,因为您无法控制用户的操作。而是使用一些html创建选项列表,然后根据用户输入的内容(而不是自由文本输入的选项)创建比较。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。