代码之家  ›  专栏  ›  技术社区  ›  Matthias Herrmann timelfelt

Azure Mobile Services初学者问题-数据库

  •  1
  • Matthias Herrmann timelfelt  · 技术社区  · 10 年前

    我正在尝试为html/JavaScript应用程序创建一个简单的后端。我首先使用azure移动服务模板创建了一个新的visual Studio项目。我创建了一个名为“ProjectItem”的简单DataObject类,如下所示:

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

    之后,我添加了一个表控制器,并且不需要修改该类中的任何代码。 在web-api-config中,我添加了以下代码和平:

    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上主持,于是问题就开始了。 这里是我用azure做的台阶:

    1. 我在新门户上创建了一个空数据库
    2. 在visual Studio中,我单击了发布(我的解决方案),并创建了一个新的移动服务,选择空数据库-我没有触及其余的设置。移动服务现在“启动并运行”。

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

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

    Database in vs

    • 这怎么会发生?
    • 我做错了什么?
    • 为什么要创建在localhost上运行的表,但当 在azure上发布不是吗?
    1 回复  |  直到 10 年前
        1
  •  1
  •   Alex Belotserkovskiy    10 年前

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

    但是,对于Mobile Services,如果在仪表板上设置动态模式,则可以在对象中创建新列,但不建议在生产中使用。

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

    推荐文章