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」。 我無法找到任何地方的舊名稱的其他參考。 –