0

由于不值得考虑的原因,我必须重命名ASP.NET MVC项目正在使用的Microsoft SQL Server数据库。我认为,在MVC方面,这与改变web.config中的连接字符串一样微不足道。唉,不。重命名SQL Server数据库和MVC5

数据库名称从myproject.MODELS.OSESDBCONTEXT变为myproject

所以,我在web.config更改默认连接块,以反映,在其他条件相同:

<defaultConnectionFactory 
     type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="Data Source=machine.company.com;Initial Catalog=MyProject;User ID=someuser; [email protected];MultipleActiveResultSets=False" /> 
    </parameters> 
</defaultConnectionFactory> 

这似乎是无法连接到数据库,但由于它不能找到正在尝试创建新数据库的数据库,但由于.mdf文件已存在而失败。但是,这不是问题,它应该连接到SQL Server。 这是运行的网页时出现错误:

无法创建文件 'C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ MyProject.Models.OSesDBContext.mdf',因为它已经存在。更改文件路径或文件名,然后重试该操作。

+0

这个问题很多关于实体框架比mvc – ovolko

回答

0

您可能可以通过执行数据库附件来完成您的工作。

您可以尝试通过SQL Server Management Studio或通过T-SQL重新连接它吗?

首先,将您的mdf和ldf文件复制到新的东西(将它们命名为相对于将附加为新数据库的新数据库)。

然后在附加数据库屏幕:

  • 数据库中Attach As场在顶部框架
  • 在底框输入新的名称,浏览到两个新的MDF文件和新你刚创建的ldf文件。
  • 然后你应该有一个新连接的数据库。
+0

这似乎很有前途。我可以通过MS-SSMS和Visual Studio Server Explorer连接到重命名的数据库。 但是,我没有在Visual Studio中看到“附加数据库”屏幕。这可能是我的误解。 数据库在我的本地计算机上不存在。它在服务器上,我不管理。在这种情况下,我不确定底层文件名是否重要。 我只是在寻找一种方法来指向新的数据库名称的项目。但是,MVC拥有它。 –

+0

我想这将需要使用SQL Server Management Studio来完成,我不认为执行数据库附件的工具将在Visual Studio的数据库工具中。 – jwhaley58

+0

数据库已经通过SMS重新命名。问题是让我的MVC应用程序与重命名的数据库交谈。 –

0

我不认为数据库名称应该在defaultConnectionFactory中指定 - 它似乎是它首先关于服务器。

数据库名称应在别处指定,例如请参阅这里的可能选项https://msdn.microsoft.com/en-us/data/jj592674

我只能怀疑旧的数据库名称仍然在上述地方的某处。您是否尝试在来源中搜索旧名称?

+0

这个链接对这个问题不是很有帮助,除非我错过了一些东西。它主要讨论对数据库进行更改。不幸的是,我只是想让MVC连接到新的数据库,并没有它。在某个地方,它似乎仍然坚持要连接到旧的,并尝试重新创建它,如果它不能。 –

+0

为什么不搜索那里提到旧数据库名称的“某处”?基于这篇文章,它可能是1)上下文类的名称2)上下文的基础构造函数参数3)connectionStrings部分中的连接字符串。我无法知道代码中使用了哪一个,但可以检查,或者在最糟糕的情况下,在文件中搜索旧的db名称。我非常确定的是,连接工厂不是地方,所以难怪它不会对你所做的改变做出反应。 – ovolko

+0

因此,整个使用旧数据库名称的唯一地方(myproject.models,osesdbcontext)位于webconfig中。重命名后,我将其更改为“myproject”。 我无法找到任何地方的旧名称的其他参考。 –