私はトピック/サブスクリプション サービスの設定に取り組んでおり、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'"));