gpt4 book ai didi

c# - 扩展基础移动 Azure 示例(.net 后端)

转载 作者:行者123 更新时间:2023-11-30 16:58:38 25 4
gpt4 key购买 nike

因此,我创建了一个 azure 移动服务,下载了一个项目并运行它。第一次启动后,我在数据库中看到一些新表:TodoItems (包含 2 项)和 _MigrationHistory 。到目前为止一切顺利。

现在,我想添加一个额外的表格。

  1. 我正在制作新模型 MyModel:EntityData { public string MyData { get; set; }
  2. 制作新 Controller MyModelController:TableController<MyModel>这是 TodoItemController 的副本,其中 TodoItem替换为 MyModel
  3. 已添加public DbSet<MyModel> MyModels { get; set; }到 MyProjectContext.cs
  4. 向 WebApiConfig 添加一行 context.Set<MyModel>().Add(new MyModel{MyData= "test"});

我是不是忘记了什么?

删除所有表并重新发布并运行我的移动应用程序后,我收到 MobileServiceInvalidOperationException 异常,并且我的表为空(甚至 TodoItems 为空)。

编辑:我不确定问题的核心在哪里。如果要向移动应用添加一行

private IMobileServiceTable<MyModel> myItemsTable = App.MobileService.GetTable<MyModel>();

它将抛出 InvalidOperationException。但是MyModels表存在于数据库中,我可以通过数据库管理器看到它...

编辑2:

  • 好的,我删除了所有附加代码(使用 MyModels)并删除了 db 中的所有表。重新发布移动服务,运行应用程序,我再次看到 2 个表:TodoItems (包含 2 项)和 _MigrationHistory .
  • 现在,我添加了行 public DbSet<MyModel> MyModels { get; set; }到 MyProjectContext.cs,删除数据库中的所有表,运行应用程序,现在我看到 3 个表:MyModels , TodoItems (包含 2 项)和 _MigrationHistory .
  • 当我添加行 context.Set<MyModel>().Add(new MyModel{MyData= "test"}); 时- 这一刻之后播种出错:我看到 3 个表 MyModels , TodoItems_MigrationHistory ,但是TodoItems现在是空的。

最佳答案

问题在 context.Set<MyModel>().Add(new MyModel{MyData= "test"}); 行中。我忘记初始化Id : 以为它会自动递增。

固定电话是context.Set<MyModel>().Add(new MyModel{MyData= "test", Id = "666"});

编辑1:我遇到的另一个问题:如果应用程序行var myTable = MobileService.GetTable<MyModel>();中有异常,请确保您添加了 Id字段到您的模型。

关于c# - 扩展基础移动 Azure 示例(.net 后端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com