1

アクティビティ (モバイル サービス) というテーブルがあり、読み取りにクエリを追加します。

Azure スクリプト:

function read(query, user, request) 
{
  var param = request.parameters.UserLocation;
  if(param)
  {
     var sql = "Select TOP 10 [NewsItemUrl], count(1) as CounterNews FROM [MobileServiceExtra].[ACTIVITY] WHERE [UserLocation] = ? GROUP BY [NewsItemUrl] ORDER BY CounterNews Desc";

     mssql.query(sql,param, {success: function(results) {request.respond(statusCodes.OK, results);}}); 
  }

//request.execute();
}

クライアント側:

 public class ACTIVITY
 {
        public int Id { get; set; }

        [JsonProperty(PropertyName = "UserLocation")] 
        public string _UserLocation { get; set; }

        [JsonProperty(PropertyName = "NewsItemUrl")] 
        public string _NewsItemUrl { get; set; }

        [JsonProperty(PropertyName = "NewsItemTitle")] 
        public string _NewsItemTitle { get; set; }

        [JsonProperty(PropertyName = "NewsItemPublisher")] 
        public string _NewsItemPublisher { get; set; }

 }

SQL でクエリを実行すると、CounterNews と NewsItemUrl の 2 つの列が取得され、Last は URL を繰り返す回数です。ただし、「CounterNews」列のデータを取得する方法がわかりません。つまり、クエリを取得したいときに、Activity テーブル (クラス) を処理し、明らかにデータを正しく返しますが、NewsItemUrl 列のみを返します。他のフィールドは空です。

クライアント側:

 private MobileServiceCollection<ACTIVITY, ACTIVITY> TopReadCollectionActivity;

 private IMobileServiceTable<ACTIVITY> ACTIVITYTable = App.MobileService.GetTable<ACTIVITY>();

 private async void LoadTop10()
 {
        var dict = new Dictionary<string, string>
        {
            { "UserLocation", "United States" },
        };

        try
        {
            TopReadCollectionActivity = await ACTIVITYTable.WithParameters(dict).ToCollectionAsync();

        }
        catch (Exception ex)
        {
            string err = ex.Message;
        }

 }

クラス(テーブルも)「Top10」を作成すると、テーブルが存在しないため、Azureでエラーが発生します。新しいテーブルを作成したくない。CounterNews と NewsItemUrl の 2 つのフィールドのみをクエリで取得するにはどうすればよいですか?

4

1 に答える 1

0

おそらく、OData サポートを使用してテーブルを直接クエリする必要があります。このようにして、テーブルの構造に限定されません。これを参考にご覧ください。

http://msdn.microsoft.com/en-us/library/windowsazure/jj677199.aspx

于 2013-08-15T02:06:02.500 に答える