2016-11-07 37 views
0

在使用Entity Framework 6.0代碼的新開發項目中,我首先必須更新我的模型。在Package Manager Console中使用Add-Migration自動生成的更新腳本變得相當複雜,因此我決定重新開始。爲此,我從本地主機刪除數據庫,並刪除項目中的Migrations文件夾。然而,當我重新跑Add-Migration -command我得到了下面的消息,並再次產生相同的更新腳本:實體框架代碼優先瞄準LocalDb而不是本地SQL Server Express主機

這個遷移文件設計器代碼包括您 當前的Code First模型的快照。當您搭建下一個遷移時,此快照用於計算對您的模型的更改 。

我很確定這是因爲__MigrationHistory -table仍然在那裏。我再次進入數據庫,但沒有創建任何數據庫,數據庫仍然消失。在web.config使用

連接字符串:

<connectionStrings> 
    <add name="DefaultConnection" 
     connectionString="Data Source=localhost;Initial Catalog=WebApp;Integrated Security=sspi;Pooling=false;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

然後我檢查了我的過程,看到了sqlservr.exe進程外的兩個版本的LocalDB浮現在腦海。我連接到(LocalDb)\MSSQLLocalDB,並且有一個名爲「DefaultConnection」的新數據庫,其中包含項目的所有表。當我刪除這個數據庫時,我從Add-Migration -command得到了一個新腳本。在某處沿線必須有一臺交換機,因爲我100%肯定我在某個時間(在更新腳本之前的所有表格,當我刪除數據庫時)一直在使用SQL Server Express主機,以及所有我的其他項目localhost與Data Source=localhost合作。我不明白爲什麼數據庫名稱是DefaultConnection而不是WebApp。連接到本地主機,數據庫名稱爲WebApp。有誰之前經歷過這個嗎?

enter image description here

回答

1

終於找到了答案。在包管理器控制檯中,將Default project設置爲包含DbContext的項目是不夠的還需要確保將您的網站設置爲默認啓動項目!

這個小小的變化讓所有事情都能夠正常工作。

我無法在任何地方找到它,所以我希望它能幫助別人。

相關問題