仅适用于Azure移动应用程序的默认路由

时间:2016-07-21 21:51:12

标签: entity-framework azure mobile xamarin

我在Azure中创建了一个新的移动应用程序并下载了初始项目并发布到Azure。

默认路由/表工作正常,但每当我尝试访问任何新表时,我都会得到"您要查找的资源已被删除,名称已更改或暂时不可用。"

我已将新表添加到dbContext并发布到Azure。当我通过SQL Management studio查看数据库时,它们会显示在表列表中,因此正在创建表。

 public myAppContext() : base(connectionStringName)
    {
    }

    public DbSet<Member> Members { get; set; }
    public DbSet<ContactMethodType> ContactMethodTypes { get; set; }
    public DbSet<GenderType> GenderTypes { get; set; }
    public DbSet<Group> Groups { get; set; }
    public DbSet<MemberContribution> MemberContributions {get;set;}
    public DbSet<Invitation> Invitations { get; set; }

我已经为与原始示例控制器匹配的新表添加了控制器,但只有初始路径似乎运行。

using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Http.OData;
using Microsoft.Azure.Mobile.Server;
using myApp.DataObjects;
using myApp.Models;

namespace myApp.Controllers
{
    public class InvitationsController : TableController<Invitation>
    {
    protected override void Initialize(HttpControllerContext     controllerContext)
    {
        base.Initialize(controllerContext);
        myAppContext context = new myAppContext();
        DomainManager = new EntityDomainManager<Invitation>(context, Request);
    }

    // GET tables/Invitation
    public IQueryable<Invitation> GetAllInvitations()
    {
        return Query();
    }

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

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

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

    // DELETE tables/Invitation/48D68C86-6EA6-4C25-AA33-223FC9A27959
    public Task DeleteInvitation(string id)
    {
        return DeleteAsync(id);
    }
}
}

1 个答案:

答案 0 :(得分:0)

您正在尝试使用哪个网址,根据以上控制器的根目录应为https://<server>/tables/Invitations

https://azure.microsoft.com/en-gb/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/#define-table-controller

使用AddTables扩展方法初始化表控制器。这为TableController的所有子类添加/ tables /下的路由。