c# - 一张表、多个 View 、一个 C# 类

标签 c# azure windows-runtime azure-mobile-services

我有一个 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/

相关文章:

c# - Windows Phone WEB API 通过 HttpClient 发布返回 404 错误

c# - 在 Windows 8.1 上禁用触摸视觉反馈(以编程方式)[桌面应用程序]

javascript - 在 Windows Metro 风格的 Javascript 应用程序中读取文件内容

c# - 如何正确P/Invoke这个函数?

c# - 使用ObserveOn时如何处理OnNext中的异常?

azure - 通过 api 调用逻辑应用作业运行状态

azure - 为什么 Move-AzResource 无法移动同一资源组内具有依赖关系的资源?

c# - 删除最后一行数据绑定(bind) DataGridView C#

c# - 使用 quartz .NET 调度 Windows 服务

Azure 虚拟机卡在 "starting"