【问题标题】:change azure mobile service api controller prefix from api to tables将 azure 移动服务 api 控制器前缀从 api 更改为表
【发布时间】:2014-12-17 19:35:07
【问题描述】:

我正在制作一个带有 .NET 后端的移动服务来为我的应用程序托管一个数据库,并试图从 NodeJS 后端切换到一个带有 .NET 后端的后端。目前,我正在使用 webapi 控制器,因为我想实现存储库模式并在使用表控制器和 EntityData 作为我的模型基类时遇到了一些索引问题。

现在,这意味着到控制器的路由是“api/controller”,但客户端 MobileService.GetTable 会查找带有“tables/controller”的路由。如何更改我的 api 控制器以使用新路由?我发现将 [RoutePrefix("tables/appsetting")] 放在我的 AppSettingsController 之上并没有达到这个目的。

【问题讨论】:

    标签: c# asp.net-web-api azure-mobile-services


    【解决方案1】:

    如果您使用的是自定义控制器,则可以使用客户端上的 InvokeAPIAsync 方法进行 POST、PUT、GET 或 DELETE。您失去了表格的一些内置功能,例如过滤、选择等,并且必须自己在自定义 API 中构建。

    两者(表/API)的处理方式不同,并托管在该 URI 空间下的后端。即使您的路由正常工作,您的自定义 API 控制器不是表控制器这一事实也意味着一些客户端功能可能会失败,除非您以某种方式在自定义 API 控制器上实现它们。

    如果您需要对索引进行更多控制,可以使用模型上的属性来创建其他索引,包括复合索引和唯一索引:http://msdn.microsoft.com/en-us/data/jj591583.aspx#Index

    【讨论】:

    • 我明白了。这就说得通了。我可能会再试一次,看看我是否可以让表控制器与存储库模式一起使用,或者我可以重组应用程序中的现有代码以使用 API 调用。到目前为止,我的问题是 EntityData 中的 Id 列和 CreatedAt 列是聚集索引,数据库似乎根本不喜欢它们。谢谢你的反馈。我开始认为我可能把事情弄得太复杂了,但生活就是这样。再次感谢您的帮助。这是一个很大的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多