gpt4 book ai didi

rest - 在 Azure 移动应用/服务中使用 TableController

转载 作者:行者123 更新时间:2023-12-02 06:50:28 25 4
gpt4 key购买 nike

我试图了解如何在 Azure 移动应用中使用 TableController。这是示例 TodoItemController:

    public class TodoItemController : TableController<TodoItem>
{
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
MobileServiceContext context = new MobileServiceContext();
DomainManager = new EntityDomainManager<TodoItem>(context, Request, Services);
}

// GET tables/TodoItem
public IQueryable<TodoItem> GetAllTodoItems()
{
return Query();
}

// GET tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public SingleResult<TodoItem> GetTodoItem(string id)
{
return Lookup(id);
}

// PATCH tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task<TodoItem> PatchTodoItem(string id, Delta<TodoItem> patch)
{
return UpdateAsync(id, patch);
}

// POST tables/TodoItem
public async Task<IHttpActionResult> PostTodoItem(TodoItem item)
{
TodoItem current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}

// DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task DeleteTodoItem(string id)
{
return DeleteAsync(id);
}
}
  • 理想情况下,我希望避免传递像 TodoItem 这样的整个模型,以减少传入/传出带宽并将客户端限制为仅他们应该关心的内容。如果我这样做,离线同步和客户端 SDK 会受到怎样的影响?
  • TableController 是否适用于上面建议的简单 CRUD 操作?互联网上有任何复杂查询的示例吗?

最佳答案

移动应用程序 TableController 是基于 OData 的 CRUD 界面的基础。您将始终将整个模型(基于 EntityData 模型,因此它有四个附加字段 - version、createdAt、updatedAt 和业已删除)传输到客户端。但是,客户端可以使用 OData 搜索来获取一组特定的实体。有关 OData 的更多信息,请查看 http://www.odata.org/

在离线同步并为客户端使用移动应用 SDK 的特定情况下,客户端 SDK 将发出 GET 但将结果限制为上次更新时间(对于第一个请求,该时间将为零,因此将获取所有内容) 。然后它将推送来自客户端的更改。在某些情况下(版本不匹配),它必须进行冲突解决。查看其文档中的“离线同步如何工作”:https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-offline-data-sync-preview/

关于rest - 在 Azure 移动应用/服务中使用 TableController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33380856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com