我正在设置主题/订阅服务,需要有关我的 SQLFilter 语法的帮助,以便我可以访问 BrokeredMessage 属性,特别是 To 属性。访问消息的系统属性的 SQL 过滤器的正确语法是什么?
我有一个使用本教程的工作示例,我可以根据需要发送和接收我的主题/订阅:https ://azure.microsoft.com/en-us/documentation/articles/service-bus-queues-topics-subscriptions/
但是,现在我想根据 BrokeredMessage 的 To 属性为每个订阅设置 SQL 过滤器。我遵循的教程提到可以“创建订阅时,您可以提供对消息属性进行操作的过滤器表达式,包括系统属性(例如,标签)和自定义应用程序属性(例如,StoreName .)”
如果我设置自定义属性,例如 StoreName,如下所示:
message.Properties.Add("StoreName", "TestMe");
并使用如下 SQL 过滤器设置订阅:
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("StoreName = 'TestMe'"));
订阅按预期过滤。但是,如果我尝试使用文章中描述的 BrokeredMessage 对象的 To 属性(或标签),我将无法使其工作。我尝试了以下 SQL 过滤器,但没有成功。访问消息的系统属性的正确语法是什么?
BrokeredMessage message = new BrokeredMessage();
message.To = "TestMe";
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("To = 'TestMe'"));
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("Message.To= 'TestMe'"));
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("MessageTo= 'TestMe'"));
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("messageto= 'TestMe'"));