1

我想为html/JavaScript应用程序创建一个简单的后端。我开始使用azure移动服务模板创建一个新的Visual Studio项目。我创建了一个名为“项目项”一个简单的数据对象类,这是看起来像这样:Azure移动服务入门问题 - 数据库

public class ProjectItem : Microsoft.WindowsAzure.Mobile.Service.EntityData 
{ 
    public string Title { get; set; } 
    public string Description { get; set; } 
} 

之后,我添加了一个表控制器,也没有必要去碰任何代码在类。 在Web API的配置我加入这个和平代码:

List<ProjectItem> projectItems = new List<ProjectItem> 
     { 
      new ProjectItem {Id = Guid.NewGuid().ToString(), Title = "First Project", Description = "My First Project Description" }, 
      new ProjectItem {Id = Guid.NewGuid().ToString(), Title = "Second Project", Description = "My Second Project Description" } 
     }; 
     foreach (ProjectItem projectItem in projectItems) 
     { 
      context.Set<ProjectItem>().Add(projectItem); 
     } 

我调试的服务在我的本地和它工作得很好。 现在我想把它放在天蓝色的地方,那里出现了问题。 这里我没有使用Azure中stepps:

  1. 我创建了新的门户网站
  2. 在Visual Studio我点击发布(我的解决方案),并创建了一个新的移动服务选择空数据库空数据库 - 我没触摸设置的其余部分。移动服务现在“正在运行”。

我只从现在开始使用sqlite,所以我在Visual Studio中打开了数据库,并希望查看我创建的测试项目(2项目项目)。

但是没有ProjectItem表,也没有ToDoItem表!

Database in vs

  • 这怎么可能发生?
  • 我做错了什么?
  • 为什么它创建在本地主机上运行的表,但是当 在azure上发布它不是?

回答

1

我相信创建对象模型并不那么简单,它会在后端创建相同的表(SQL Azure清晰或Azure存储)。您需要使用Azure仪表板创建它,或者执行自定义API并按照described here的方式执行操作。您可以在Visual Studio中执行相同的操作,我认为或从连接到SQL Azure数据库的SQL Server Management Studio中执行相同的操作。

但是,对于移动服务,如果您在仪表板上设置了动态模式,则它将能够在它们位于对象中时创建新列,但不建议在生产中使用。

因此,您没有任何问题,它看起来以编程方式创建表只是不受支持的方式(仅限于仪表板或任何类型的资源管理器,如SSMS或VS)。无论如何(顺便说一句),它们将不在系统表分支中。

+0

发布标准项目正在创建一个表... –

+0

我们可以聊一下吗? –

+0

而你的链接是针对移动应用程序而非移动服务的,这是不同的东西。 –