Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/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
Database 更改模型';MVC2中的数据源是否已发布?_Database_Visual Studio 2010_Asp.net Mvc 2 - Fatal编程技术网

Database 更改模型';MVC2中的数据源是否已发布?

Database 更改模型';MVC2中的数据源是否已发布?,database,visual-studio-2010,asp.net-mvc-2,Database,Visual Studio 2010,Asp.net Mvc 2,如果你急着要说到这一点,就跳到最后一段 我是MVC2的新手,我的任务是用它创建一个数据库管理应用程序。在花了几个星期掌握了窍门之后,我终于开始编写我的生产代码了。为了测试我的代码,我需要能够访问dev服务器上的数据库副本。当需要发布发布版本时,它显然需要使用实时数据库 最初,我创建了维护数据库的两个并排模型(使用实体框架),并将另一个模型的名称空间更改为类似DevModels的名称空间,而不是models,以避免名称冲突(它们是完全相同的模型,只是不同的源)。这造成的问题比解决的问题还多。无论如

如果你急着要说到这一点,就跳到最后一段

我是MVC2的新手,我的任务是用它创建一个数据库管理应用程序。在花了几个星期掌握了窍门之后,我终于开始编写我的生产代码了。为了测试我的代码,我需要能够访问dev服务器上的数据库副本。当需要发布发布版本时,它显然需要使用实时数据库

最初,我创建了维护数据库的两个并排模型(使用实体框架),并将另一个模型的名称空间更改为类似
DevModels
的名称空间,而不是
models
,以避免名称冲突(它们是完全相同的模型,只是不同的源)。这造成的问题比解决的问题还多。无论如何,在翻阅Pro ASP.NET MVC 2框架这本书的过程中,我有了一个好主意,就是在
Web.Config
文件中更改数据源。这样,当我发布应用程序时,它将自动拥有正确的数据源。长话短说,这根本不起作用,造成的问题比解决的问题还多

不管怎么说,我已经四处找了些,但是什么也找不到。我发现的所有材料都不具体,让我更加困惑。我相信有一个简单的方法可以做到这一点,因为它必须是一件普通的事情

总之,我如何编写一个MVC2应用程序,并且能够将该模型与不同的数据源一起使用,这样我就不必大量修改代码来生成应用程序的生产版本

更新: 这是我更改前后的连接字符串。Before=dev服务器

`元数据=res:///Models.MaintModel.csdl|res:///Models.MaintModel.ssdl|res://*/Models.MaintModel.msl;provider=System.Data.SqlClient;提供程序连接字符串='Data Source=EXP\u POWERSUITE2;初始目录=“维护数据库SQL”;综合安全=真实;MultipleActiveResultSets=True''

`元数据=res:///Models.MaintModel.csdl|res:///Models.MaintModel.ssdl|res://*/Models.MaintModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=EXP\u POWERSUITE;Initial Catalog=“Maint DatabaseSQL”;Integrated Security=True;MultipleActiveResultSets=True”

此外,为了确保我有正确的连接字符串,我启动了一个新的应用程序,制作了一个新的edm,它的名称和所有内容都相同,但面向实时数据库。我在寻找任何明显的差异,但这与我上面所说的完全一样

此外,我还可以在应用程序中检索和显示数据库中的行。我就是无法添加它们


我使用的是MS SQL Server Manager 2008 R2。

发布时只需更改web.config中的连接字符串,这是我使用的,也是我推荐的,这会导致什么样的问题


如果数据库结构相同,它应该可以工作。

您可以通过更改web.config中的连接字符串以指向新的数据源来获得所需的结果。只有当您指向的新数据库具有所有表、列、引用等作为您的开发数据库时,这才有效。如果不匹配,那么您的模型将与新数据库不匹配,您将得到错误


如果您决定更改开发数据库,则必须确保更改位于您所指向的新数据库中,否则模型将不匹配。

感谢您的回复。我会澄清一点,现在我已经回到工作中,可以在这方面做得更多。实际上,我已经尝试在web.config中更改连接字符串。但这显然是行不通的。我每次都会收到一个更新异常。我应该具体更改连接字符串的哪些方面?我只更改了“数据源”=“将部分添加到另一个服务器的名称。此外,数据库实际上与实时数据库的直接副本相同。也许您还需要更改凭据?尝试从另一台服务器上的数据库生成实体模型,并检查web中的差异。configI已经尝试过了,并且连接字符串相同。不管怎样,问题都解决了,但我还是不知道为什么我一开始就有这个问题=(也许有一天我会弄明白的。谢谢你的回答。我想我提到过我曾经尝试过,但没有成功。在这个过程中,我的应用程序有点不正常,我无法修复它,所以我只是重新启动它并复制了我所有的代码/文件。这次我尝试更改连接字符串,结果成功了!