Asp.net mvc 导出通过CodeFirst创建的数据库

Asp.net mvc 导出通过CodeFirst创建的数据库,asp.net-mvc,database,ef-code-first,Asp.net Mvc,Database,Ef Code First,我已经使用MVC、CodeFirst和MySql Connector.NET工作了一段时间。到目前为止,一切都很顺利 但是现在,我面临着一个我无法解决的问题。。。由于某些原因,我不得不将正在使用的数据库移动到另一台服务器。我试着用一种更简单的方法:通过.sql文件 将数据库内容导入新服务器后,数据库结构良好。但当网站试图通过EF访问数据库内容时,会出现奇怪的问题(MySql.Data.MySqlClient.MySqlException:field list中的未知列Extent3.item)

我已经使用MVC、CodeFirst和MySql Connector.NET工作了一段时间。到目前为止,一切都很顺利

但是现在,我面临着一个我无法解决的问题。。。由于某些原因,我不得不将正在使用的数据库移动到另一台服务器。我试着用一种更简单的方法:通过.sql文件

将数据库内容导入新服务器后,数据库结构良好。但当网站试图通过EF访问数据库内容时,会出现奇怪的问题(MySql.Data.MySqlClient.MySqlException:field list中的未知列Extent3.item)

为了找到解决问题的答案,我意识到这种问题的发生是因为没有正确地使用FKs创建关系。但是,在我的例子中,它不适用,因为在我尝试移动数据库之前,一切都正常

然后,我突然想到,一些关于数据库模式的信息存储在连接器的某个地方(实际上,我不知道这是不是真的……但我想我在某个地方读到了类似的东西)。所以,可能问题是,当我试图将数据库导出到.sql文件时,我丢失了一些信息

所以。。。我想知道我是否按照正确的步骤将数据库的内容导出并导入到新服务器。如果我没有,我该怎么做?如果我是,我的问题的根源是什么

谢谢大家!

问题解决了


服务器具有不同的SOs。旧的那个,运行Windows。新的运行Linux。默认情况下,linux MySQL中的表名区分大小写,而旧数据库不区分大小写。因此,我只需在新数据库中禁用区分大小写的表名。

您可以尝试对导致异常的查询执行
.ToString()
。这将为您提供为您的查询生成的Sql查询。现在对数据库运行Sql,看看是否有相同的错误。分析Sql查询并与数据库架构进行比较。这应该会给你指明正确的方向。好吧,我已经按照你的建议做了。。。这对我一点帮助都没有。。。当我在旧数据库中使用查询字符串时,它就像一个符咒。但当我在新数据库中使用它时:“字段列表”中的未知列“Extent3.item”就会出现。有趣的是:旧数据库中没有“Extent3”表。。。但是,查询仍然有效。。。我不知道会发生什么…最后,你的建议帮我找到了错误哈哈。“谢谢,”帕维尔说。