所以,我创建了一个Azure移动服务,下载了一个项目并运行它。首次启动后,我在数据库中看到了一些新表:
现在,我想添加一个额外的表。
删除所有表并重新发布和运行我的移动应用程序后,我收到了MobileServiceInvalidOperationException异常,并且我的表为空(甚至
它会抛出InvalidOperationException异常。但是MyModels表存在于数据库中,我可以通过数据库管理器看到它...
编辑2: - 好的,我删除了所有与MyModels相关的额外代码,并删除了数据库中的所有表。重新发布移动服务,运行应用程序,现在我看到了2个表:TodoItems(有2个项目)和_MigrationHistory。 - 现在,我在MyProjectContext.cs中添加了一行public DbSet MyModels { get; set; },删除了数据库中的所有表,运行应用程序,现在我看到了3个表:MyModels,TodoItems(有2个项目)和_MigrationHistory。 - 当我添加了context.Set().Add(new MyModel{MyData= "test"});这行代码后,种子播种出现了问题:我现在看到了3个表MyModels,TodoItems和_MigrationHistory,但是TodoItems现在为空。
TodoItems
(有2个项目)和_MigrationHistory
。到目前为止都很好。现在,我想添加一个额外的表。
- 我正在创建新模型
MyModel:EntityData { public string MyData { get; set; }
- 创建一个新控制器
MyModelController:TableController<MyModel>
,这是TodoItemController的副本,其中TodoItem
被替换为MyModel
- 将
public DbSet<MyModel> MyModels { get; set; }
添加到MyProjectContext.cs - 在WebApiConfig中添加一行
context.Set<MyModel>().Add(new MyModel{MyData= "test"});
删除所有表并重新发布和运行我的移动应用程序后,我收到了MobileServiceInvalidOperationException异常,并且我的表为空(甚至
TodoItems
也为空)。
编辑:我不确定问题的核心在哪里。如果要向移动应用程序添加一行private IMobileServiceTable<MyModel> myItemsTable = App.MobileService.GetTable<MyModel>();
它会抛出InvalidOperationException异常。但是MyModels表存在于数据库中,我可以通过数据库管理器看到它...
编辑2: - 好的,我删除了所有与MyModels相关的额外代码,并删除了数据库中的所有表。重新发布移动服务,运行应用程序,现在我看到了2个表:TodoItems(有2个项目)和_MigrationHistory。 - 现在,我在MyProjectContext.cs中添加了一行public DbSet MyModels { get; set; },删除了数据库中的所有表,运行应用程序,现在我看到了3个表:MyModels,TodoItems(有2个项目)和_MigrationHistory。 - 当我添加了context.Set().Add(new MyModel{MyData= "test"});这行代码后,种子播种出现了问题:我现在看到了3个表MyModels,TodoItems和_MigrationHistory,但是TodoItems现在为空。
public DbSet<MyModel> MyModels
并像这样填充它:context.Set<MyModel>().Add(new MyModel{MyData= "test"});
- 这是你示例的简化版本。你能再次指出其中的区别吗?我担心我没有理解它们。 - Vitalii Vasylenko