Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为什么EF在我的web服务器上生成的数据模型和SQL不同?_Sql Server_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

Sql server 为什么EF在我的web服务器上生成的数据模型和SQL不同?

Sql server 为什么EF在我的web服务器上生成的数据模型和SQL不同?,sql-server,entity-framework,asp.net-mvc-4,Sql Server,Entity Framework,Asp.net Mvc 4,这个问题对我来说太奇怪了,我甚至不知道如何解释它。首先,我要说的是,当地一切都运转良好。当我将我的应用程序发布到web服务器时,问题就开始了。首先,我得到了“数据库创建后的‘DATACONTEX’上下文的模型支持。考虑使用代码第一迁移来更新数据库”。奇怪,因为我没有对数据模型做任何更改。我做的第一件事是删除数据库,然后运行更新数据库,使用代码优先迁移再次创建它。本地测试运行良好,然后发布(删除所有内容),并得到相同的错误。然后,我将初始值设定项设置为null,并删除了includeMetadat

这个问题对我来说太奇怪了,我甚至不知道如何解释它。首先,我要说的是,当地一切都运转良好。当我将我的应用程序发布到web服务器时,问题就开始了。首先,我得到了“数据库创建后的‘DATACONTEX’上下文的模型支持。考虑使用代码第一迁移来更新数据库”。奇怪,因为我没有对数据模型做任何更改。我做的第一件事是删除数据库,然后运行更新数据库,使用代码优先迁移再次创建它。本地测试运行良好,然后发布(删除所有内容),并得到相同的错误。然后,我将初始值设定项设置为null,并删除了
includeMetadata约定
。已删除数据库,更新数据库,发布。现在我收到一个错误“无效列名'Item_ID'”。好的,这很有意义,因为我的数据库中没有“Item_ID”列。运行SQLProfile时,我可以看到本地生成的sql不包含列,但在服务器上运行时包含列。在花了几个小时寻找不正确的连接字符串或任何其他我可能错过的小东西后,我决定将整个本地文件夹手动复制到web服务器上。还是一样的错误。我再也不知道该去哪里找了,我想听听你的想法或建议。让我知道,如果我可以提供任何代码,可能会有所帮助


我最近发现,如果我使用
CreateDatabaseIfNotExists()
并让数据库在服务器上创建,它将在服务器上工作,但不会在本地工作。

这种疯狂的东西让我避免使用EF。实际上,我对你的故事感到困惑。若你们有一个本地工作的数据库,你们能备份它并在服务器上恢复吗?测试应用程序是否工作正常。无论应用程序在哪里运行,应用程序都使用/创建相同的数据库。我指的是web应用程序的位置。我从头重写了数据项目,现在一切似乎都正常了:)我希望我能告诉你问题出在哪里,因为它似乎与我所拥有的完全相同。显然这并不常见,我已经在这方面浪费了太多的时间。