我在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);
}
}
}
答案 0 :(得分:0)
您正在尝试使用哪个网址,根据以上控制器的根目录应为https://<server>/tables/Invitations
使用AddTables扩展方法初始化表控制器。这为TableController的所有子类添加/ tables /下的路由。