アクティビティ (モバイル サービス) というテーブルがあり、読み取りにクエリを追加します。
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 つのフィールドのみをクエリで取得するにはどうすればよいですか?