我有一个 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 之间的数字。我还在我的移动服务中添加了许多读取脚本,用于查询 View 并返回相应的行。
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 返回的数据是相同的,对于每个读取脚本,我如何进行这项工作,以便我可以调用任何读取脚本,该脚本查询适当的 View 检索我需要的值?
希望这是有道理的。
非常感谢,
杰森。
附注当然,我可以读取整个表并在客户端上使用 LINQ 进行查询,但这会增加下载的数据量。
最佳答案
这是从乔什·特威斯特那里得到的
function read(query, user, request) {
var dispatch = {
op1 : operation1,
op2 : operation2,
}
if (request.parameters.operation && dispatch.hasOwnProperty(request.parameters.operation)) {
dispatch[request.parameters.operation](query, user, request);
return;
}
else
{
// default path for execution
request.execute();
}
}
function operation1(query, user, request) {
request.respond(200, "this result is from operation1");
}
function operation2(query, user, request) {
request.respond(200, "this result is from operation2");
}
http://www.thejoyofcode.com/Dispatching_to_different_query_functions_in_Mobile_Services.aspx
此代码还发送一个经过筛选的 OData 请求,仅检索所需的记录。从待办事项列表 Azure 移动服务教程中获取
private async void RefreshTodoItems()
{
// This code refreshes the entries in the list view by querying the TodoItems table.
// The query excludes completed TodoItems
var results = await todoTable
.Where(todoItem => todoItem.Complete == false)
.ToListAsync();
items = new ObservableCollection<TodoItem>(results);
ListItems.ItemsSource = items;
}
关于c# - 一张表、多个 View 、一个 C# 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274609/