Windows Azure Mobile Services Preview テーブル ("Item" という名前) の "読み取り" 操作を次のように変更しました。
Javascript:
function read(query, user, request)
{
var howRead;
if(howRead == "unique")
{
var sqlUnique = "SELECT DISTINCT ? FROM Item WHERE qProjectCode = ?";
mssql.query(sqlUnique)
request.execute();
}
else if (howRead == "column")
{
var sqlColumn = "SELECT ? FROM Item WHERE qProjectCode = ?";
mssql.query(sqlColumn)
request.execute();
}
else if (howRead == "all")
{
var sqlAll = "SELECT * FROM Item WHERE qProjectCode = ?";
mssql.query(sqlAll)
request.execute();
}
}
これは、単一の列の値の一意のリスト、単一の列のすべての項目、またはすべての列をそれぞれ返したいときに、特定のプロジェクト コードで読み取りをそれらのレコードに制限しながら、単純に種付けします。
現在、これは C# で機能しますが、(他のプロジェクト コードを使用して) テーブル全体をスキャンし、常にすべての列を返します。これは本質的に非効率的です。
c#
var client = new MobileServiceClient("[https path", "[key]");
var table = client.GetTable<Item>();
var query1 = table.Where(w => w.QProjectCode == qgv.projCode && w.QRecord == (int)lbRecord.Items[uStartRecordIndex]);
var query1Enum = await query1.ToEnumerableAsync();
foreach (var i in query1Enum)
{
// process data
}
Javascript コードを処理するために c# コードを変更するにはどうすればよいですか? 私は優れたプログラマーではなく、いつでもアドバイスを利用できるので、全体的なアプローチを自由に批判してください!
ありがとう