如果您急于达到目的,请跳到最后一段。
我是MVC2的新手,我的任务是使用它创建数据库管理应用程序。花了几周的时间,我终于开始编写我的生产代码了。为了测试我的代码,我需要能够在开发服务器上访问数据库的副本。什么时候发布版本,显然需要使用实时数据库。
最初,我创建了维护数据库的两个并排模型(使用实体框架),只是将另一个的命名空间更改为DevModels
,而不是仅仅Models
为了避免姓名冲突(他们是完全相同的模型,只是不同的来源)。这导致了比解决的问题更多的问题。无论如何,在阅读Pro ASP.NET MVC 2 Framework一书时,我明白了改变Web.Config
文件中的数据源。这样,当我发布应用程序时,它将自动拥有正确的数据源。长话短说,这并没有完全奏效,造成的问题多于解决的问题。
无论如何,我做了一些环顾四周,但我找不到任何东西。我找到的所有材料都非常不明确,让我更加困惑。我确信有一个简单的方法可以做到这一点,因为它是一个常见的事情。
总而言之,如何编写一次MVC2应用程序并能够使用具有不同数据源的模型,这样我就不必大量修改代码来生成应用程序的生产版本了?
更新: 这是我更改之前和之后的连接字符串。在= dev server
之前`元数据= RES:// /Models.MaintModel.csdl|res:// /Models.MaintModel.ssdl|res://*/Models.MaintModel.msl;provider=System .Data.SqlClient; provider connection string ='Data Source = EXP_POWERSUITE2; Initial Catalog =“Maint DatabaseSQL”; Integrated Security = True; MultipleActiveResultSets = True'“
`元数据= RES:// /Models.MaintModel.csdl|res:// /Models.MaintModel.ssdl|res://*/Models.MaintModel.msl;provider=System .Data.SqlClient; provider connection string ='Data Source = EXP_POWERSUITE; Initial Catalog =“Maint DatabaseSQL”; Integrated Security = True; MultipleActiveResultSets = True'“
另外,为了确保我有正确的连接字符串,我启动了一个新的应用程序,并创建了一个具有相同名称和所有内容的新edm,但面向实时数据库。我正在寻找任何明显的差异,但它与我上面的完全相同。
此外,我可以在应用程序中检索和显示数据库中的行。我只是无法添加它们。
我正在使用MS SQL Server Manager 2008 R2。
答案 0 :(得分:0)
只是在发布时更改web.config中的连接字符串是我使用的和我推荐的内容,它会导致什么样的问题?
如果数据库结构相同,它应该可以工作。
答案 1 :(得分:0)
您可以通过更改web.config中的连接字符串以指向新数据源来获得所需的结果。这仅在您指向的新数据库具有所有表,列,引用等作为开发数据库时才有效。如果它不匹配,那么您的模型将与新数据库不匹配,您将收到错误。
如果您决定对开发数据库进行更改,则必须确保更改位于您指向的新数据库中,否则模型将无法匹配。