3

過去 3 ~ 4 時間、Azure モバイル サービスのしくみに関する優れたチュートリアルとドキュメントを探していました。モバイル サービスを作成する方法、既存のデータベースに接続する方法、または新しいデータベースを作成する方法、モバイル サービス自体で作成されたテーブルに格納されているデータにアクセスする方法を示すチュートリアルに何度も遭遇します。モバイル サービスで作成されたストレージ テーブルとは対照的に、実際のデータベース自体に正確にアクセスする方法をどこで見つけることができますか。基礎となるデータ構造を保護するための抽象データ モデルを提供することに関して、OData サービスが動作するはずの方法で実際に動作しない限り、この「モバイル サービス」とは対照的に、データベースからデータに直接アクセスできない理由がわかりません。 .

私の質問は 、Azure モバイル サービスを介して Sql Azure Db (リレーショナル構造) に正確にアクセスするにはどうすればよいですか?

4

3 に答える 3

3

エイドリアン

答えはあなたの質問にあります。モバイル サービスは抽象レイヤーです。そのため、テーブルに直接アクセスすることはできません。電話からのリクエストがモバイル サービスに届くと、ロジックを実行できるようになり、ユーザーに代わってデータベースにアクセスします。接続プーリングやセキュリティなど、さまざまな理由から、この方法が最善です。操作のしくみの詳細については、これを機能させるMobile Service RESTプロトコルに関する MSDN ドキュメントを確認してください。

ありがとうエルベ

于 2013-06-25T00:17:21.760 に答える
3

これは、Windows Azure Mobile Services カスタム API から既存の SQL データベースを公開するプロセスを説明するブログ投稿です。

JavaScript 側から直接 SQL クエリを作成できます。

exports.get = function(request, response) {
   var id = request.query.id;
   request.service.mssql.query(
      'select * from Person join Orders on Person.ID = Orders.PersonID where Person.id = ' + id, {
      success: function(results) {
         response.send(200, results);
      }
   });
};

mssqlオブジェクトに関するその他のドキュメント。

于 2013-06-25T20:24:54.697 に答える
1

Herve Roggeroが既に指摘したように、Mobile Services RESTful APIは、SQL Azure のテーブルにアクセスするための推奨される方法です。モバイル サービスの全体的な考え方は、アプリケーションからのデータ アクセスと変更の負担をクラウド ホスト型サービスに任せることです。

それでもデータテーブルに「直接」アクセスしたい場合は、次の方法があります。

サーバー スクリプトでは、グローバルmssqlを使用して、データベースに対して SQL クエリを実行したり、データを取得したり、データを変更または挿入したりできます。

mssql.query('select top 1 * from statusupdates',    
     { success: function(results) 
            {
            console.log(results); 
            } 
        }
); 

別のクラウド ホスト サービス(Web ロールまたはワーカー ロール) があり、内部要求に対してファイアウォール アクセスを有効にしている場合は、TDS プロトコルを使用して SQL Azure サーバーにアクセスし、好き嫌いに応じてデータを操作できます。

最後に、SQL Azure でファイアウォールを開き、外部ネットワークから接続できるようにし、クライアントで TDS プロトコルを使用して DB 通信を行うことができます。

しかし、これら 3 つの方法のいずれも「モバイル サービス経由」とは呼ばず、むしろ「内部から」(1) および「それらをバイパスする」(2,3) と呼びます。

于 2013-06-25T07:10:47.150 に答える