次のように定義された単一のC#クラスがあります
class HighScore
{
public int Id { get; set; }
[DataMember(Name = "PlayerName")]
public string PlayerName { get; set; }
[DataMember(Name = "PlayerCountry")]
public int PlayerCountry { get; set; }
[DataMember(Name = "PlayerTime")]
public double PlayerTime { get; set; }
[DataMember(Name = "PlayerBadge")]
public int PlayerBadge { get; set; }
}
そして、このタイプの複数のレコードを含む Azure モバイル サービス SQL データベース内のテーブル。私はいくつかのビューを持っています
select * from tellingthetime.HighScore where PlayerBadge=0
ここで、PlayerBadge は 0 から 4 までの数値です。また、ビューをクエリして適切な行を返す、モバイル サービスにいくつかの読み取りスクリプトを追加しました。
function read(query, user, request) {
mssql.query("select * from OneStarBadgeLeaderBoard", {
success: function(results) {
console.log(results);
request.respond(statusCodes.OK, results);
}
});
}
上記のスクリプトは OneStarBadgeLeaderBoard と呼ばれますが、私のクラスは HighScore と呼ばれます。以下のコードは、基になるテーブルを取得するために呼び出します。
private IMobileServiceTable<HighScore> HighScoreTable = App.MobileService.GetTable<HighScore>();
別のクラス名を作成しなくても、定義はすべて同じです。SQL が返すデータは同じです。読み取りスクリプトごとに、これを機能させて、適切なビューを照会して値を取得する任意の読み取りスクリプトを呼び出すことができます。私は欲しい?
それが理にかなっていることを願っています。
どうもありがとう、
ジェイソン。
PS もちろん、テーブル全体を読み取って、クライアントで LINQ を使用してクエリを実行することもできますが、ダウンロードするデータの量が増えます。