我在asp.net应用程序中使用代码优先约定和mysql数据库。首先,我创建了一个数据模型。其次,我使用add-migration和update database创建了数据库。我在MySQLWorkbench中看到我的数据库已经创建。 之后,我运行我的应用程序,看看数据库如何工作。在创建一个观点之前,我要问'数据库中的用户列表。问题是在linq查询期间获取用户列表会抛出异常。消息是表'事件'已经存在。我不明白这个错误。是的,数据库中的所有表都退出。这些表之间没有直接关系。 我盯着在互联网上寻找答案。我发现只有一个解决方案。我下载了数据库,删除了所有迁移,创建了新的迁移和更新数据库,但是这个解决方案并没有解决问题。
有什么想法吗?
这个问题在MySQL中的编号为1050。
在我的Seed方法中,我可以将对象插入到数据库中,并且它可以工作。但是在app运行期间抛出了异常。我试试:
DROP TABLE IF EXISTS Events;
REPAIR TABLE Events;
我在MySQLWorkbench中执行此查询并重新启动应用程序。然后我有"新"例外:"表'文件'已存在"。当我尝试
DROP TABLE IF EXISTS Documents;
REPAIR TABLE Documents;
MySQLWorkbench:错误代码:1217。无法删除或更新父行:外键约束失败。所以问题依然存在。现在我有例外情况"表'文件'已存在"。我在迁移类中检查我的Up方法,第一个创建的表是Events,第二个是Documents。所以我认为我应该修复所有表,因为在database-update命令中必须创建错误的数据库。但为什么它早些起作用(?)我仍然不知道。