【发布时间】:2016-07-12 11:50:31
【问题描述】:
我已经找到了几种不同的方法来做我想做的事情,但我完全不知道为什么我的方法一个接一个地失败了。这是我的设置:
- 我有一个想要部署的 Azure 移动应用程序/服务(我知道移动服务正在逐步淘汰,我的设置是使用移动应用程序 btw)。当然给我的默认
TodoItem是没用的,所以我想添加我自己的项目,我称之为Digest。 -
我为要添加的项目制作了一个模型,如下所示:
public class Digests : EntityData { public string Title { get; set; } public string ImageURI { get; set; } } - 当然,我还使用 Visual Studio 2015 中的工具制作了一个控制器,所以没有什么新东西。
现在我们进入有趣的部分。我怎么能在我的Digest 项目中创建一个包含数据的表?让我向您解释一下我到目前为止所做的事情:
我进入
My_App_Context.cs并在默认public DbSet<TodoItem> TodoItems { get; set; }下方添加了public DbSet<Digests> DigestItems { get; set; },该默认public DbSet<TodoItem> TodoItems { get; set; }一开始就已经存在。假设这应该在我的 Azure SQL 数据库中创建一个与我的移动服务/应用程序关联的表。我去了
Startup.MobileApp.cs并在Initializer类中添加了context.Set<Digests>().Add(new Digests { Id = "2016", Title="Test" ,ImageURI = "random_url"});。这应该填充我在第一步创建的表中的一行。请注意,该类继承自CreateDatabaseIfNotExists,我没有更改它,因为它适用于 Azure 团队提供的默认模板 (TodoItem)。
最重要的是,在这一切之后,绝对没有任何事情发生。我使用 SQL Server Management Studio 进入服务器,什么都没有,甚至没有 TodoItem 表(它应该在那里,因为我从未修改过模板代码)。
让我更加困惑的是,如果我用一个完整的数据库设置一个完整的另一个移动应用程序/服务,并且我只是让模板应用程序和提供的后端按原样运行,它就可以完美运行。表、插入、删除和所有其他东西都可以毫无问题地创建和填充,但是当我添加 5 行代码时,不仅我的代码没有做任何事情,而且似乎以某种方式阻止了 TodoItem 代码已经给出对我来说。
我要做的就是创建表,以便让客户端使用 Azure API 下载其内容。非常感谢任何帮助。
这是我添加的所有新代码:
-
一个名为
Digests的新DataObject:public class Digests : EntityData { public string Title { get; set; } public string ImageURI { get; set; } } 当然,我生成数据对象控制器。
My_App_Context.cs中的这行代码:public DbSet<Digests> DigestItems { get; set; }AppInitializer : CreateDatabaseIfNotExists类上我的Startup.MobileApp.cs上的这行代码:context.Set<Digests>().Add(new Digests { Id = "2016", Title="Test", ImageURI = "someUriHere"});
【问题讨论】:
-
你在工作和不工作之间添加了哪五行代码?
-
在 cmets 中添加杂乱无章,请参阅有问题的编辑。
-
-
它是否创建默认表 todo 和 Digestitems?问题只是您要添加的默认数据吗?
-
是的。如果我只运行默认代码,它会使用种子数据创建 TodoItem 表,而不是我要添加的表。
标签: azure azure-sql-database azure-mobile-services